0

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

在此处输入图像描述

我在单独的 .java 文件中使用基本适配器实现了 listview。谁能建议我如何在单击列表项时将文本设置为标签?

编辑:

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

4

7 回答 7

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));
}
于 2013-10-03T03:01:07.060 回答
2

先生,

您的意思是,您的适配器在一个类中,而活动在另一个文件中。好吧,您可以这样做,以更新文本视图。

将上下文传递给活动,如果它在适配器中您正在维护计数,那么一旦更新计数,

然后,假设您在活动中有此方法

public void updateTextView(int count) {
    // enter your code here to set the count in the textview
}

并从 baseAdapter 调用上述方法,如下所示:

if(mContext != null) {
    ((YourActivity)mContext).updateTextView(mCount);
}

并且活动中的文本视图将被更新!我希望它有所帮助。

于 2013-10-08T05:01:42.177 回答
1

OnItemClickListener在您的ListViewthen 中,onClick您将获得一个值,该值arg2position被单击的项目的值。

只需ArrayList从您要显示的值中获取该值ListView并显示它...

如果我没有误解您的问题,希望这是您所需要的。

于 2013-10-03T03:40:15.923 回答
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);

        }
    });
于 2013-10-03T05:54:06.770 回答
0

onListItemClick调用list.getItemAtPosition(position)以检索项目文本

然后将此文本设置为textview1.setText(listText).

于 2013-10-03T06:02:38.183 回答
0

首先实现您的 onItemClickListener,您将在其中获得 int arg2 参数,即位置,因此获取该位置并执行您想要的任何操作,如下所示。

 list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                LABLE.setText(""+arg2);

            }
        });
于 2013-10-08T05:22:41.660 回答
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);
}
}
于 2013-10-10T13:34:19.253 回答