繁体   English   中英

如何更改ListFragment / ArrayAdapter的列表项文本?

[英]How do I change a list item text for a ListFragment/ArrayAdapter?

我有一个扩展ListFragment的片段。

在其中我使用了ArrayAdapter

public class MyFragment extends ListFragment {
    public void onStart() {
        super.onStart();
        List<String> list = new ArrayList<String>();
        list.add("Superman");
        list.add("Batman");
        arrayAdapter = new ArrayAdapter<OptionToStringAdapter>(
                getActivity(),
                android.R.layout.simple_list_item_1,
                list);
        getListView().setAdapter(arrayAdapter);
        getListView().setOnItemClickListener(new ModifyOption(this));
        setListShown(true);
    }

当用户点击一个项目时,我要修改文本。

如何修改文字?

public class ModifyOption implements OnItemClickListener {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        ???What goes here????
    }
}

尝试以下代码:

public class ModifyOption implements OnItemClickListener { public void onItemClick(AdapterView parent, View view, int position, long id) {

arrayAdapter.remove(arrayAdapter.getItem(position));
arrayAdapter.insert("new text",position);

 } }

假设您要更改单击的列表项的内容。

首先,使用您选择的对话框或小部件更改值。 其次,使用“ position”参数更改列表中该位置的项目的值。

第三,调用适配器对象的notifyDataSetChanged()方法。

public class ModifyOption implements OnItemClickListener {
    public void onItemClick(AdapterView parent, View view, int position, long id) {


       // create a dialog or other widget
       String newValue = "your_new_value";
       list.set(position,newValue);  
       arrayAdapter.notifyDataSetChanged();  //informs views that data has been changed


    }
}

这似乎可以解决问题。 我不知道这是否合适。

public void onItemClick(AdapterView parent, View view, int position, long id) { TextView textview = (TextView) view.findViewById(android.R.id.text1); textview.setText("Spiderman"); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM