来自EditText的getText()问题

时间:2011-08-31 19:35:02

标签: android android-edittext

http://pastebin.com/babqrrqa

就像标题所说,我从EditText获取文本时遇到问题。

我的应用在读取此行时崩溃:

字符串值= aux.getText()。toString(); ,可能因为aux.getText()为null仍然有setText(“lol”),在此方法

 public boolean onOptionsItemSelected(MenuItem item) {  
    switch (item.getItemId()) {  
    case R.id.adicionar:  
        //Toast.makeText(this, "This is the Toast message", Toast.LENGTH_LONG).show();
        final AlertDialog.Builder alert = new AlertDialog.Builder(this);
        final EditText input = new EditText(this);

         LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         LinearLayout dialerLayout = (LinearLayout) layoutInflater.inflate(R.layout.input, null);
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
            dialerLayout.setLayoutParams(params);


        alert.setView(dialerLayout);



        alert.setPositiveButton("Adicionar", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {


                aux = (EditText)findViewById(R.id.cadeira);
                aux.setText("lol");
                String value = aux.getText().toString();
                //String value2="TESTE";

            lista.add(value);
             adapter.notifyDataSetChanged();

            }

        });

        alert.setNegativeButton("Cancelar",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        dialog.cancel();
                    }
                });
        alert.show();



    return true;  
    default: return super.onOptionsItemSelected(item);  
    }
    }  

3 个答案:

答案 0 :(得分:1)

可能“aux”为空。

正如我从您的代码中假设的那样,“cadeira”EditText位于您膨胀的LinearLayout中。但是当你执行“findViewByById”时,它会搜索主布局。因此你应该尝试:

aux = (EditText) dialerLayout.findViewById(R.id.cadeira);

答案 1 :(得分:0)

这可能是因为.toString()getText()的结果将是一个字符串,因此toString()可能会导致其崩溃。

答案 2 :(得分:0)

声明或初始化“aux”,可能会出现人为错误,但您没有显示错误的错误日志措辞, 如果你能详细说明,这将更快地解决问题。