2012-08-11 5 views
0

ListView에 두 개의 액티비티가 있습니다. 이 두 가지 활동에는 개별 레이아웃 파일이 있습니다. 먼저 myListView01을 가지고 있고, 두 번째에는 myListView02가 있습니다. listView의 어댑터를 업데이트하는 방법? 나는 그렇게 : 나는 array01에서 일부 항목을 제거ListView 업데이트

ListView list = (ListView)findViewById(R.id.myListView01); 
myAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01); 
list.setAdapter(myAdapter); 

그리고이 요소없이 내 목록보기를 업데이트해야합니다. 그러나 ListActivity이 솔루션은 작동하지 않습니다

myAdapter.notifyDataSetChanged(); 

내 코드 :

package ...; 
import ...; 
public class Class01 extends Activity 
{ 
    ArrayAdapter<String> mAdapter; 

    ArrayList<String> array01 = new ArrayList<String>(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout01); 

     ListView list = (ListView)findViewById(R.id.my_list01); 
     mAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01); 

     list.setAdapter(mAdapter); 
    } 
    public void onListItemClick (ListView parent, View v, int position, long id) 
    { 
     array01 = deleteElementByPosition(array01, position); 

     mAdapter.notifyDataSetChanged(); //does not work 
    } 
    public void deleteElementByPosition() 
    { 
     ... 
    } 
} 
+0

항상 로더를 사용하는 것이 좋습니다. – Mike

+0

무엇? 그것은 ListView와 어떤 관련이 있습니까? – Leo

+0

http://developer.android.com/guide/topics/ui/layout/listview.html – Mike

답변

1

을 당신은 당신의 ListView에 대한 onItemClickListener을 설정하지 않았습니다. Class01ListActivity에서 연장하십시오. Activity 클래스에는 onListItemClick() 메서드가 없으므로 호출되지 않습니다. 또는 ListView에 청취자를 setOnItemClickListener()으로 설정하십시오.

+0

정말 고마워요! – Leo

관련 문제