2

私は5000個のアイテムを持つリストビューを持っています。ある位置でリストビューのアイテムを取得して、それをうまく処理したいのですが、getListView().getChildAt(1) メソッドを呼び出すと、null が返されます。

protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_items);

cur = ItemDao.getItemsCursor();
column_names = new String[] { ItemDao.NAME, ItemDao.MEASUREUNIT, ItemDao.REM };
columns = new int[] { R.id.item_name, R.id.item_measureunit, R.id.item_rem };

scadap = new SimpleCursorAdapter(this, R.layout.list_items, cur, column_names, columns, 0);
ListView list = getListView();

list.setDivider(getResources().getDrawable(android.R.drawable.divider_horizontal_bright));
list.setDividerHeight(10);

setListAdapter(scadap);
list.invalidateViews();
  (getListView().getChildAt(getListView().getFirstVisiblePosition())).setVisibility(View.INVISIBLE);






}
4

2 に答える 2

1

onCreate()この問題は、リストがまだレンダリングされていないために、ビュー関連のメソッドがnull(または空)を返す場所でリストビューの子アイテムを取得しようとしたことが原因である可能性があります。

onPostCreate()1つの解決策は、リストビューを取得し、メソッドでアダプターとリスナーを設定することです。

于 2012-08-09T07:28:59.273 に答える
0

OnItemClickListener()選択したアイテムを取得するために使用してみてください

listView.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    String  getSelectedItemOfList = yourList.get(pos); // here you can get selected item.
        }
});

お役に立てれば。

于 2012-08-09T07:28:38.627 に答える