如何对在列表视图中输入的数字执行加法?我尝试过这种方式它不起作用



public class MainActivity extensions AppCompatActivity {

EditText actv;
Button bt, total;
ListView lt;
String getInput;
ArrayAdapter adapter;
TextView tv;

整数,总和 =0; final ArrayList addArray = new ArrayList((;

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

    actv = (EditText) findViewById(R.id.autoCompleteTextView) ;
   bt = (Button) findViewById(R.id.button);
    total = (Button)findViewById(R.id.btt) ;
    tv = (TextView) findViewById(R.id.textView);
    lt = (ListView) findViewById(R.id.listView);

按钮创建包含数字的列表视图

bt.setOnClickListener(new View.OnClickListener(( { @Override

        public void onClick(View view) {
             getInput = actv.getText().toString();
             num = Integer.valueOf(getInput);
             addArray.add(num);
             adapter = new ArrayAdapter(MainActivity.this,
                     android.R.layout.simple_list_item_1,addArray);
             lt.setAdapter(adapter);
            ((EditText) findViewById(R.id.autoCompleteTextView)).setText("");
   }

}(;

另一个按钮来计算所有数字的总和

    total.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            for (int i = 0; i <addArray.size() ; i++) {
                sum = sum + addArray.get(i);
            }
            tv.setText(sum);
        }
    });

当我在 EditText 中输入多个数字时,它会按预期显示在 ListView 中,但单击按钮后应用程序崩溃并且不执行加法

你永远不应该假设你的数组是有效的,而不先检查它们......尝试添加一些安全措施:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actv = (EditText) findViewById(R.id.autoCompleteTextView) ;
bt = (Button) findViewById(R.id.button);
total = (Button)findViewById(R.id.btt) ;
tv = (TextView) findViewById(R.id.textView);
lt = (ListView) findViewById(R.id.listView);
addArray = new ArrayList();

    public void onClick(View view) {
         getInput = actv.getText().toString();
         num = Integer.valueOf(getInput);
         if (addArray !=null) {
             addArray.add(num);

             adapter = new ArrayAdapter(MainActivity.this,
                 android.R.layout.simple_list_item_1,addArray);
             lt.setAdapter(adapter);
         }
        ((EditText) findViewById(R.id.autoCompleteTextView)).setText("");

}

total.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if ((addArray != null) && (addArray.size() > 0)) {
            for (int i = 0; i <addArray.size() ; i++) {
                sum = sum + addArray.get(i);
            }
            tv.setText(sum);
        }
    }
});

相关内容

最新更新