Java 如何解决alertdialog中代码EditText的问题将空白值存储到textview中

Java 如何解决alertdialog中代码EditText的问题将空白值存储到textview中,java,android,Java,Android,在alertdialog提示时,edittext值被定义为空值。然后,我需要输入第二个数字,以便textview显示我之前输入的第一个数字。这意味着无论我第一次输入什么,它都必须是空的。如何在单击amount listview时使edittext不为空 公共类MainActivity扩展活动{ 字符串[]列表项; int-total=0; 布尔校正类别=真; 整数金额=0; 字符串v; 文本视图电视; 按钮btn; @凌驾 创建时受保护的void(Bundle savedInstanceStat

在alertdialog提示时,edittext值被定义为空值。然后,我需要输入第二个数字,以便textview显示我之前输入的第一个数字。这意味着无论我第一次输入什么,它都必须是空的。如何在单击amount listview时使edittext不为空

公共类MainActivity扩展活动{
字符串[]列表项;
int-total=0;
布尔校正类别=真;
整数金额=0;
字符串v;
文本视图电视;
按钮btn;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listItems=getResources().getStringArray(R.array.budgetlist);
tv=(TextView)findviewbyd(R.id.tv3);
btn=(按钮)findViewById(R.id.bt1);
最终ListView ListView=(ListView)findViewById(R.id.ListView);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,listItems);
setAdapter(适配器);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意向i=新意向(主要活动、本、收入、类别);
星触觉(i);
}
});
最终编辑文本et=新编辑文本(MainActivity.this);
AlertDialog.Builder=新建AlertDialog.Builder(MainActivity.this);
建造商名称(“金额”);
builder.setMessage(“请输入您的金额”);
et.setInputType(InputType.TYPE\类别\编号);
builder.setView(et);
builder.setCancelable(false);
builder.setPositiveButton(“是”,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
tv.setText(总计);
Toast.makeText(getApplicationContext(),et.getText(),
吐司。长度(短)。show();
}
});
setNegativeButton(“否”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
dialog.cancel();
}
});
final AlertDialog alert=builder.create();
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//TODO自动生成的方法存根
alert.show();
字符串s=listview.getItemAtPosition(position).toString();
如果(s.等于(“金额”)){
v=et.getText().toString();
尝试
{
金额=整数.parseInt(v);
}
捕获(数字格式)
{
e、 printStackTrace();
}
总预算=总预算+食品;
correctCategory=true;
}否则{
correctCategory=false;
}
}
});
}
}

我希望edittext在第一次将未解析的空值转换为整数。

问题在于,您试图为变量amount分配一个空字符串,因为您放置它的方法将在positiveButton onClick方法之前首先被调用,这将始终导致NumberFormatException,从而导致您的尝试阻止永远执行

所以试试这个解决方案

首先,使变量为全局变量

其次,将所有变量赋值移动到以下方法:

builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            if (s.equals("Amount")){
                v = et.getText().toString();
                amount = Integer.parseInt(v);
                tv.setText(String.valueOf(amount));
            }
        }
});
最后是最后一种方法

   listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            alert.show();
            s = listView.getItemAtPosition(position).toString();
        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
alert.show();
s=listView.getItemAtPosition(position.toString();
}
});

只需检查字符串是否为空。并使edittext仅包含数字。使用此条件检查(!v.getText().isBlank())@TaseerAhmad我使用了您的代码,但它说getText()不是未定义的字符串抱歉,我在该代码中出错。您需要检查类似<代码>((.v.GETTEXTHEMER).toSTRIN().ISBLACK())< /C> > ZuaSoSoMro我已经设置EdtEnter只能输入数字,但是当我点击了ListVIEW的数量时,它自动将Eddit文本的空白值解析成整数。