2013-07-09 59 views
0

在我的Android应用程序中,我有两个列表视图和两个按钮。在单击第一个按钮时,第一个列表视图将显示,第二个按钮第二个列表视图将可见。在一个列表视图中,我将拥有项目列表和第二个列表视图中将会有ADD按钮。现在单击添加按钮我的第一个列表视图将会显示,用户可以选择要添加到第二个列表视图中的项目。我已经成功完成了。但我的问题是,通过点击第二个按钮列表视图出现,但没有从第一列表视图添加的数据。以下是我的代码。 我错过了什么?在Android中的多个列表视图

final ListView lv = getListView(); 
LayoutInflater inflater = getLayoutInflater(); 
final View header = getLayoutInflater().inflate(R.layout.footer, null); 
lv.addFooterView(header, null, false); 

btnCollege.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     String listItems[] = {}; 
     final ArrayAdapter<String> string = new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_list_item_1); 
     lv.setAdapter(string); 

     Button btnAdd = (Button) header.findViewById(R.id.btnAdd); 

     btnAdd.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


       if (j == 0) 
       { 
        lv.setVisibility(View.VISIBLE); 
        header.setVisibility(View.VISIBLE); 

        j = 1; 
       } 


       else if (j == 1) 
       { 
        lv.setVisibility(View.INVISIBLE); 
        header.setVisibility(View.INVISIBLE); 

        j = 0; 
        } 

       else {} 


       lv1.setVisibility(View.VISIBLE); 
       lv1.setOnItemClickListener(new OnItemClickListener() { 

        @Override 
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
         // TODO Auto-generated method stub 


          String selected = lv1.getItemAtPosition(arg2).toString(); 
          string.add(selected); 
          string.notifyDataSetChanged(); 
          setListAdapter(string); 


        } 
       }); 

      } 
     }); 


    } 
}); 
+0

你需要扩展ArrayAdapter以便通过notifyDataSetChanged()方法更新适配器我猜 –

+0

我不明白你在说什么?你可以解释吗? –

回答

0

视图没有得到更新。使用处理程序更新listview。这将帮助你解决问题

+0

怎么样?你能给我一些例子吗?或者代码...只是小小的提示,我会打... –