按钮显示按钮的内部地址,而不是设置文本文本



我的列表视图中的每一行都有 2 个按钮。要显示的文本取决于某些特征,因此我想更改按钮上的文本。但是,我不仅无法更改文本,而且出现的文本就像按钮的内部地址,即"ANDROID。控件。按钮{175F420 VFED..C......I. 0,0-0,0#7F0C00083 APP:ID/READ} 这是我的代码:

import android.widget.Button;
....
public void ShowArticles(){
ArrayList<ArticleSelection> articleSelectionList = helper
.GetArticleListForResource(globalVariable.getCategoryIndex());

String[] columnNames = {"_id", "Column1", "Column2", "Column3",
"Column4", "Column5", "Column6", "Column7"};
MatrixCursor matrixCursor = new MatrixCursor(new String[]{"_id",
"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7" });
int[] to = new int[]{R.id.id, R.id.imageButton, R.id.title, R.id.year, R.id.authors,
R.id.favs, R.id.read, R.id.readOnLine};

for (ArticleSelection articleItem : articleSelectionList) {
Button btn1 = (Button) ThisView.findViewById(R.id.read);
Button btn2 = (Button) ThisView.findViewById(R.id.readOnLine);
if (Downloaded == "Y"){
btn1.setText("Read");
}
else btn1.setText("Download");
matrixCursor.addRow(new Object[]{k, imgFile,Title, Year , Authors, favs , btn1, btn2 });
}
SimpleCursorAdapter menuItems = null;
menuItems = new SimpleCursorAdapter(
this, R.layout.article_row, matrixCursor, columnNames, to);
listView.setAdapter(menuItems);
}

我的按钮XML:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/read"
android:backgroundTint="#00000000"
android:text="Download"
android:layout_toRightOf="@+id/favs"
android:layout_alignBottom="@+id/imageButton"
android:layout_marginStart="11dp"
android:layout_weight="1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id = "@+id/readOnLine"
android:backgroundTint="#00000000"
android:layout_toRightOf="@+id/read"
android:text="Read Online"
android:layout_alignBottom="@+id/imageButton"
android:layout_alignParentEnd="true"
android:layout_weight="1"
/>

谢谢。答案可能真的很容易,就像我以前做过的那样,但我认为我没有在一行列表视图中完成过。 我已经看到了有关向按钮添加文本的其他答案,以及我尝试过的答案。

尝试将添加行更改为

matrixCursor.addRow(new Object[]{k, imgFile,Title, Year , Authors, favs , btn1.getText(), btn2.getText() })

首先在 for 循环之外声明你的Button

Button btn1 = (Button) ThisView.findViewById(R.id.read);
Button btn2 = (Button) ThisView.findViewById(R.id.readOnLine);

其次比较String使用equals==

Downloaded.equals("Y");

第三,ANDROID.WIDGET.BUTTON{175F420 VFED..C.. ....I. 0,0-0,0#7F0C00083 APP:ID/READbtn1的字符串演示文稿

最新更新