簡體   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