我有一个由 ListView 和标签组成的布局。看看下面的图片。
我在单独的 .java 文件中使用基本适配器实现了 listview。谁能建议我如何在单击列表项时将文本设置为标签?
编辑:
标签的文本应该是单击的列表项的数量。假设我单击了列表项中的一个按钮,标签应设置为 1。类似地,在下一次尝试中,如果我单击另一个列表项的按钮,它应设置为 2,依此类推...
我有一个由 ListView 和标签组成的布局。看看下面的图片。
我在单独的 .java 文件中使用基本适配器实现了 listview。谁能建议我如何在单击列表项时将文本设置为标签?
编辑:
标签的文本应该是单击的列表项的数量。假设我单击了列表项中的一个按钮,标签应设置为 1。类似地,在下一次尝试中,如果我单击另一个列表项的按钮,它应设置为 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));
}
先生,
您的意思是,您的适配器在一个类中,而活动在另一个文件中。好吧,您可以这样做,以更新文本视图。
将上下文传递给活动,如果它在适配器中您正在维护计数,那么一旦更新计数,
然后,假设您在活动中有此方法
public void updateTextView(int count) {
// enter your code here to set the count in the textview
}
并从 baseAdapter 调用上述方法,如下所示:
if(mContext != null) {
((YourActivity)mContext).updateTextView(mCount);
}
并且活动中的文本视图将被更新!我希望它有所帮助。
就OnItemClickListener
在您的ListView
then 中,onClick
您将获得一个值,该值arg2
是position
被单击的项目的值。
只需ArrayList
从您要显示的值中获取该值ListView
并显示它...
如果我没有误解您的问题,希望这是您所需要的。
试试这个代码
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);
}
});
在onListItemClick
调用list.getItemAtPosition(position)
以检索项目文本
然后将此文本设置为textview1.setText(listText)
.
首先实现您的 onItemClickListener,您将在其中获得 int arg2 参数,即位置,因此获取该位置并执行您想要的任何操作,如下所示。
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
LABLE.setText(""+arg2);
}
});
检查此代码
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);
}
}