记录一些有关毕设的Android Studio中的操作

本文介绍了在Android应用开发中如何进行Activity之间以及Fragment与Activity之间的数据传递,通过Intent和Bundle实现。同时,展示了如何设置EditText默认值及进行空值检查,以及如何使用AlertDialog创建带有多个按钮的对话框,包括删除、修改和取消功能。此外,还讨论了AlertDialog中按钮的差异,如Positive、Negative和Neutral按钮的不同用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做毕设过程中遇到一些有关AS的问题,一边搜索一边尝试,解决了其中一部分,在此做一个记录。

知识比较琐碎,并且仅以能够实现功能为准,所以并非是最优解。

1.Activity之间的传值(包括fragment与Activity之间)

这里以一个功能为例子,功能要求是点击列表中的某一项,将数据记录下来并传递到下一个页面的EditText中显示。

点击列表中的一项,将列表的数据记录下来

 TextView textView = (TextView) view;//定义
 String bigTypeName = (String) textView.getText();//取值

在传出数据的页面记录数据,要注意bundle.putString要根据类型改变,这里值类型为String所以为putString。

@Override
public void onClick(DialogInterface dialogInterface, int i) {
    Bundle bundle = new Bundle();//利用Bundle传值
    bundle.putString("bigTypeName",bigTypeName);//记录名字为bigTypeName,数据是上面获取的
    Intent intent = new Intent(getActivity(), TypeAddActivity.class);//页面跳转
    intent.putExtras(bundle);//带数据一起跳转
    startActivity(intent);
}

在传入数据的页面获取数据,

Intent intent = getIntent();
String bigTypeName = intent.getStringExtra("bigTypeName");//与传出时设置名字对应

2.给EditText获取默认值,并进行是否为空判断

 定义EditText

EditText bigTypeNameText = (EditText)findViewById(R.id.text_bigType_add) ;

使用

bigTypeNameText.setText(bigTypeName);

为EditText设置默认值

判空操作使用

TextUtils.isEmpty(bigTypeText.getText())

完整代码:

package com.example.studenttimemanage;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class TypeAddActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_type_add);

        Intent intent = getIntent();
        String bigTypeName = intent.getStringExtra("bigTypeName");

        EditText smallTypeText = (EditText) findViewById(R.id.text_smallType_add);
        EditText bigTypeNameText = (EditText)findViewById(R.id.text_bigType_add) ;
        if(bigTypeName != null){
            bigTypeNameText.setText(bigTypeName);
        }

        Button btn_type_add = (Button) findViewById(R.id.btn_type_add);

        btn_type_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(TextUtils.isEmpty(smallTypeText.getText())){
                    Toast.makeText(getApplicationContext(),"次要类型名不能为空", Toast.LENGTH_LONG).show();
                }
                if(TextUtils.isEmpty(bigTypeNameText.getText())) {
                    Toast.makeText(getApplicationContext(),"主要类型名不能为空", Toast.LENGTH_LONG).show();
                }
            }
        });


    }
}

3.关于对话框AlertDialog的按钮区别

之前一直是按照书上的进行设置,一个positive(确定)按钮,一个negative(取消)按钮。

下面是一个例子,对list_view列表监听,点击列表时弹出是否删除对话框,选择否无事发生,选择是则连接服务器进行删除操作。

list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        TextView textView = (TextView) view;
        String smallTypeName = (String) textView.getText();
        AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
        alertDialog.setTitle("删除");
        alertDialog.setMessage("是否要删除该类型?");
        alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                RequestParams requestParams = new RequestParams();
                requestParams.add("smallType",smallTypeName.trim());

                //获取保存的用户信息
                SharedPreferences preferences = getActivity().getSharedPreferences("UserInfo", Activity.MODE_PRIVATE);
                String username = preferences.getString("userName", "error");
                requestParams.add("userName",username);

                new AsyncHttpClient().post("http://ip地址/StudentTimeManage/TypeDeleteServletApp", requestParams, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        if (statusCode == 200){
                            Toast.makeText(getActivity(), new String(responseBody), Toast.LENGTH_LONG).show();
                        }
                    }

                    @Override
                    public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {

                    }
                });

            }
        });
        alertDialog.show();
    }
});

现要改变当前对话框为,点击列表后,弹出对话框,按钮为删除,修改,取消三个。

由于需要在对话框中加入第三个按钮,于是回去翻书发现还有一个neutral(中立)按钮,于是有些好奇其中的区别。

目前来看三个的区别在于位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值