我有一个由ListView和标签组成的布局。请看下面的图片。
我在一个单独的.java文件中使用基本适配器实现了listview。 任何人都可以建议我如何在点击列表项目时将文本设置为标签?
已编辑:
标签的文本应该是单击的列表项的数量。 假设我单击列表项中的按钮,标签应设置为1。 类似地,在下一次尝试中,如果我点击另一个列表项的按钮,它应该设置为2,因此.. on ..
答案 0 :(得分:2)
在OnItemClickListener
电话adapter.getItem(int position)
中,从支持BaseAdapter
的集合中检索对象。从那里,你应该能够检索你需要的任何字段。
修改强>
您的编辑会清除问题。更新的答案:
private int mCounter = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ListView listView = getYourListView();
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mCounter++;
updateTextView();
}
});
if(savedInstanceState != null) {
mCounter = savedInstanceState.getInt("counter", 0);
}
updateTextView();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("counter", mCounter);
}
private void updateTextView() {
// TextView textView = getYourTextView();
textView.setText(String.valueOf(mCounter));
}
答案 1 :(得分:2)
爵士
你说的是这个,你的适配器在一个类中,活动在另一个文件中。那么你可以这样做,以更新textview。
将上下文传递给活动,如果它在适配器中保持计数,那么一旦计数更新,
然后,假设您在活动中有此方法
public void updateTextView(int count) {
// enter your code here to set the count in the textview
}
并从baseAdapter中调用上面的方法:
if(mContext != null) {
((YourActivity)mContext).updateTextView(mCount);
}
活动中的textview将会更新! 我希望它有所帮助。
答案 2 :(得分:1)
OnItemClickListener
只需ListView
,然后在onClick
中,您将获得一个值arg2
,即所点击项目的position
。
只需从显示ArrayList
的{{1}}中获取该值并显示...
如果我没有误解你的问题,希望这就是你所需要的。
答案 3 :(得分:0)
试试这段代码
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String itemText=(String) arg0.getItemAtPosition(arg2);
yourLable.setText(itemText);
}
});
答案 4 :(得分:0)
在onListItemClick
调用list.getItemAtPosition(position)
中检索项目文本
然后将此文本设置为textview1.setText(listText)
。
答案 5 :(得分:0)
首先实现你的onItemClickListener,你将得到int arg2参数,这是位置,所以得到那个位置并按照你想要的方式做你喜欢的东西。
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
LABLE.setText(""+arg2);
}
});
答案 6 :(得分:0)
检查此代码
public class ListA extends ListActivity {
private TextView selection;
private static final String[] items={"Item 1", "Item 2", "Item 3"};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_list);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
items));
selection=(TextView)findViewById(R.id.selection);
}
@Override
public void onListItemClick(ListView parent, View v, int position,
long id) {
selection.setText(position);
}
}