gpt4 book ai didi

java - 使用 Try 语句时的 Android SetText

转载 作者:行者123 更新时间:2023-11-29 02:42:03 26 4
gpt4 key购买 nike

所以我已经研究了大约 4 个小时,以解决我遇到的这个问题。

基本上我正在尝试创建一个警告框并使用光标中的数据来设置 TextView 的文本并且数据在那里但是一旦我尝试设置它我每次都会得到一个空对象引用并且我拒绝移动过去它:(

这里是有问题的代码:

 public void InputManual(long id) {

@SuppressLint("AndroidLintInflateParams")
final SQLite db = new SQLite(this);
SQLiteDatabase X = db.getReadableDatabase();

Cursor c;

try {
c = X.rawQuery("SELECT Product FROM Inventory WHERE _id =" + id, null);
c.moveToNext();
CreatePopup();
Y = (TextView) findViewById(R.id.product);
Log.v(TAG, "DATA: " + c.getString(c.getColumnIndexOrThrow("Product")).toString());
Y.setText(c.getString(c.getColumnIndexOrThrow("Product")));
c.close();

} catch (Exception e) {
e.printStackTrace();
}
}

当我使用 Log.v 显示它时,数据就在那里,当我尝试设置文本时,它就消失了。

这里是 CreatePopup():

    private void CreatePopup() {

LayoutInflater Manual = LayoutInflater.from(this);
final View textEntryView = Manual.inflate(R.layout.update, null);
final EditText infoData = (EditText) textEntryView.findViewById(R.id.InfoData);
final AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Update Quantity").setView(textEntryView).setPositiveButton("Save",
new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,
int whichButton) {

String Result = infoData.getText().toString();
String Done = "";

if (Result.length() == 0) {

}
}
}).setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {

}
});
alert.show();

}

XML 文件:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/Information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:paddingLeft="5dp"
android:text="@string/Product"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/product"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="none"
android:text="" />

<EditText
android:id="@+id/InfoData"
style="@android:style/TextAppearance.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:hint="@string/hint_data"
android:inputType="number" />

</LinearLayout>

我有一个 listView onItemClickListerner,它只传递 InputManual(id),它只是数据库中项目的 ID。

我正处于想要扔掉键盘的地步,因为我无法弄清楚为什么每次我尝试任何操作时它都会变为 null。

即使采用不同的方法也会有所帮助,我们将不胜感激。

我的目标是单击 ListView 中的一个项目并使用列表中的项目生成警告框,这样我就可以将数量更改为不同的值,但我只是试图将 TextView 设置为 ListView 中的内容从数据库获取数据。

我可能没有正确解释,但我愿意提供任何可以帮助我解决这个问题的信息!

长时间浏览 stackoverflow,我终于到了需要帮助的地步,因为我不能再用 google 了:(

实际错误:

inventory W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
inventory V/MyActivity: DATA: CokeD
inventory W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

谢谢!

最佳答案

这个错误:

inventory W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

表示 TextView 对象为 null,而不是您从数据库中获取的字符串值。

这意味着

Y = (TextView) findViewById(R.id.product);

返回 null,可能是因为该 View 归对话框所有,而不是 Activity 所有。

尝试将字符串值作为参数传递给 CreatePopup() 方法,然后您可以从那里调用 setText。像这样:

private void CreatePopup(String product) {

LayoutInflater Manual = LayoutInflater.from(this);
final View textEntryView = Manual.inflate(R.layout.update, null);
final EditText infoData = (EditText) textEntryView.findViewById(R.id.InfoData);

//Add these lines
final TextView productText = (TextView) textEntryView.findViewById(R.id.product);
productText.setText(product);

...

}

关于java - 使用 Try 语句时的 Android SetText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com