【问题标题】:How to add items to a listview dynamically without sub items?如何在没有子项目的情况下动态地将项目添加到列表视图?
【发布时间】:2014-01-12 12:55:05
【问题描述】:

我正在尝试通过文本框将项目添加到列表视图中,而列表中没有子项目。到目前为止,我发现与此相关的是Dynamically add elements to a listView Android,但我使用的是片段,所以我得到了以下内容实施此解决方案时出错,http://pastebin.com/1QrUTx15

这就是我尝试实现它的方式,但我认为它不起作用,因为我使用了两个 onCreate 方法。有人能指出我在这个问题上的正确方向吗,或者是否有更好的方法来添加项目一个列表视图的文本框?我还想知道如何从列表视图中排除子项目,以便仅将项目传递给它。

public class TopRatedFragment extends Fragment {

    //LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
    ArrayList<String> listItems=new ArrayList<String>();

    //DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LISTVIEW
    ArrayAdapter<String> adapter;

  //RECORDING HOW MANY TIMES THE BUTTON HAS BEEN CLICKED
    int clickCounter=0;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
        return rootView;
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.fragment_top_rated);
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listItems);
        setListAdapter(adapter);
    }

    //METHOD WHICH WILL HANDLE DYNAMIC INSERTION
    public void addItems(View v) {
        listItems.add("Clicked : "+clickCounter++);
        adapter.notifyDataSetChanged();
    }

}

目前的界面是这样的..

【问题讨论】:

    标签: android listview android-listview


    【解决方案1】:

    添加新项目后,要么为 ListView 分配一个新适配器:

    public void addItems(View v) {
        listItems.add("Clicked : "+clickCounter++);
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listItems);
        setListAdapter(adapter);
    }
    

    或者使用自定义 ListView 适配器。只有这样,您才能使用 notifyDataSetChanged。 我在回答类似问题时解释了有关该问题的详细信息:Android - Dynamically Updating a custom ListView after items in an ArrayList are added

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多