0

ListViewには 2 つのアクティビティがあります。この 2 つのアクティビティには、個別のレイアウト ファイルがあります。最初に myListView01 があり、2 番目に myListView02 があります。listView のアダプタを更新するには? 私はそうします:

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

array01 からいくつかの項目を削除し、この要素なしで listView を更新する必要があります。しかし、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()
    {
        ...
    }
}
4

1 に答える 1

1

にonItemClickListenerを設定していませんListViewClass01から拡張しますListActivityActivityクラスにはonListItemClick()メソッドがないため、呼び出されることはありません。または、 setOnItemClickListener()を使用してリスナーを設定しますListView

于 2012-08-12T10:07:47.647 に答える