2016-03-10 79 views
1

嘿,我正在尝试在的新对话框中填充EditText。问题是,我得到使用ListView中的值在新对话框中填充EditText

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object 

我把吐司从ListView获得的价值和它的作品,它返回的特定值。 当我尝试致电.setText(ValueFromListView)它给出了错误,我不明白为什么。谁能帮我这个? 下面是代码:

@Override 
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, final long id) { 
    final Dialog dialog = new Dialog(MainActivity.this); 
    dialog.setTitle("Edit item..."); 
    dialog.setContentView(R.layout.custom_dialog_edit_delete); 
    dialog.show(); 

    Button button_UPDATE = (Button) dialog.findViewById(R.id.custom_dialog_edit_delete_button_UPDATE); 
    Button button_CANCEL = (Button) dialog.findViewById(R.id.custom_dialog_edit_delete_button_CANCEL); 
    Button button_DELETE = (Button) dialog.findViewById(R.id.custom_dialog_edit_delete_button_DELETE); 

    // GET PRODUCT REFERENCES 
    Cursor cursor = (Cursor) parent.getItemAtPosition(position); 
    String productName = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_PRODUCT)); 
    String productPrice = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_PRICE)); 
    String productType = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_TYPE)); 
    Toast.makeText(MainActivity.this, productName + " " + productPrice + " " + productType, Toast.LENGTH_SHORT).show(); 

    EditText prodField = (EditText) findViewById(R.id.custom_dialog_edit_delete__productName); 
    prodField.setText(productName); // This is the line that i get the null pointer exception 
} 

回答

3

EditText可以在自己的对话框里面,所以你必须在创建的EditText对象时给YOUT对话框的参考。

EditText prodField = (EditText) dialog.findViewById(R.id.custom_dialog_edit_delete__productName); 
+0

非常感谢它的工作......我是新来的机器人 – Adrian

0

试试这个

EditText prodField = (EditText)dialog.findViewById(R.id.custom_dialog_edit_delete__productName); 
prodField.setText(productName); 

//

+0

谢谢Abdul Gafur – Adrian