shelf_repots_item_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="vertical" >
<TextView`enter code here`
android:id="@+id/textView"
android:layout_width="150dp"
android:layout_height="80dp"
android:layout_marginBottom="5dp"
android:background="@drawable/back"
android:textColor="@color/color_black"
android:gravity="center_vertical"
android:padding="10dip" />
</LinearLayout>
添加了10个带有文本的TextView元素设置 &#34;设置文本视图1&#34;,&#34;设置文本视图2&#34; ...&#34;设置文本查看10&#34;正确 你可以在下面看到适配器getView()
private class MyAdapter extends BaseAdapter {
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.shelf_repots_item_row, null);
TextView title = (TextView) retval.findViewById(R.id.textView);
title.setBackground(null);
title.setText("Seting text view :"+position);
return retval;
}
}
}
on item点击我读她的第4个元素读取str2 =(String)textView.getText();并获取在getView中设置的正确字符串。 str2现在是&#34;设置文本视图4&#34;
现在我正在改变textView字符串 textView.setText(&#34;更改文本视图&#34;);
再次读取字符串,如str =(String)textView.getText(); str现在是&#34;更改文本视图&#34;
但是在没有反映的屏幕上。
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LinearLayout v = (LinearLayout)parent.getAdapter().getView(position, view, parent);
TextView textView = (TextView)v.getChildAt(0);
String str2 = (String) textView.getText();
textView.setText("Changing Text View");
textView.setTextColor(R.drawable.back);
String str = (String) textView.getText();
((MyAdapter) parent.getAdapter()).notifyDataSetChanged();
}
任何身体都可以帮助我并显示我做错的地方。 提前致谢。
答案 0 :(得分:1)
它不会像这样工作,这就是原因。
如果您调用notifyDataSetChanged()
列表方法,请致电getView
。
这里你正在做的是改变文本
LinearLayout v = (LinearLayout)parent.getAdapter().getView(position, view, parent);
TextView textView = (TextView)v.getChildAt(0);
String str2 = (String) textView.getText();
textView.setText("Changing Text View");
但是当你打电话给((MyAdapter) parent.getAdapter()).notifyDataSetChanged();
由于getView
"Seting text view :"+position
再次被调用并将文字视图的文本设置为title.setText("Seting text view :"+position);
为你提供清楚的事情。
如果这对您有帮助,请将其标记为正确。:)