java - 使用 ListView 中的值填充新对话框中的 EditText

标签 java android listview

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

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

我在从 ListView 获得的值上放置了一个 Toast,它起作用了,它返回了特定的值。 当我尝试调用 .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
}

最佳答案

EditText 在您的对话框中可用,因此您必须在创建 EditText 对象时提供您的对话框的引用。

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

关于java - 使用 ListView 中的值填充新对话框中的 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913003/

相关文章:

java - 编写 Java 代码需要域名吗?

java - 如何在 Windows 7 中打开 JAR 文件

Android ListView 标题文本在刷新 ListView 时消失

java - 删除 ListView 中的行,IndexOutOfBound 异常

android - 当我开发Android应用程序时,我想在较低的Android版本中使用较高API的方法。怎么做?

java - 这两个 Java 泛型方法接受相同的数据类型吗?

java - 安卓:我是新手。我在 java 文件中声明了一个按钮,但在 xml 文件和模拟器上没有看到它

android - ViewPager setCurrentItem 不流畅

android - 优雅地处理缺少的gradle定义(如果缺少定义,请使用默认值)

android - Jitpack Gitlab 私有(private)存储库试用 没有存储库的读取权限