根据列表项单击设置文本

时间:2013-10-03 02:54:48

标签: android android-listview

我有一个由ListView和标签组成的布局。请看下面的图片。

enter image description here

我在一个单独的.java文件中使用基本适配器实现了listview。 任何人都可以建议我如何在点击列表项目时将文本设置为标签?

已编辑:

标签的文本应该是单击的列表项的数量。 假设我单击列表项中的按钮,标签应设置为1。 类似地,在下一次尝试中,如果我点击另一个列表项的按钮,它应该设置为2,因此.. on ..

7 个答案:

答案 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);
}
}