final String[] genre = {"a", "b", "c", "d", "e","f","g","h","i","j" };
final String[] genre1 = {"...","0","1","2"};
final String[] genre2 = {"...","3","4","5"};
static int listint = 0;
...
@Override
public Object instantiateItem(ViewGroup container, int position) {
if(position==0) {
View view = getActivity().getLayoutInflater().inflate
(R.layout.pager_item_test, container, false);
container.addView(view);
ListView ListViewOnScreen = (ListView)container.findViewById(R.id.ListViewOnScreen);
if (listint == 0) {
ArrayAdapter arrayadaptermain = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, genre);
ListViewOnScreen.setAdapter(arrayadaptermain);
ListViewOnScreen.setOnItemClickListener(onitemclicklistenermain);
} else if (listint == 1) {
ArrayAdapter arrayadapter1 = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, genre1);
ListViewOnScreen.setAdapter(arrayadapter1);
ListViewOnScreen.setOnItemClickListener(onitemclicklistener1);}
return view;
}
...
}
public AdapterView.OnItemClickListener onitemclicklistenermain = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long l_position) {
String tv = (String)parent.getAdapter().getItem(position);
Toast.makeText(getActivity(), tv + " printed from main, listint = " + listint, Toast.LENGTH_SHORT).show();
switch(position){
case 0: listint = 1; break;
}}};
public AdapterView.OnItemClickListener onitemclicklistener1 = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long l_position) {
String tv = (String)parent.getAdapter().getItem(position);
Toast.makeText(getActivity(), tv + " printed from 1, listint = " + listint, Toast.LENGTH_SHORT).show();
switch(position){
case 0: listint = 0; break;
}}};`
這是SlidingTabsBasicFragment(來自SlidingTabsBasic)其頁面是listview的一部分。如何使Listview更改內容(數組)和onitemclick功能
我試圖使這個程序是這樣的:
- 首先,ListViewOnScreen顯示的String []流派。
- 當ListViewOnScreen是顯示字符串[]流派,點擊位置0( 「A」)時,會將ListViewOnScreen顯示字符串[] genre1代替。
- 當ListViewOnScreen顯示String [] genre1時,單擊位置0(這裏,它將是「...」)將使ListViewOnScreen再次顯示String []類型。
我認爲這個代碼會工作。但是ListViewOnScreen無論listint是什麼,都能一致地顯示流派(不是genre1)。
特異)點擊 '一個' 第一時間: 吐司:從主印刷,listint = 0 在陣列無變化,仍然顯示 「A」, 「B」,...
Clicking 'a' second time:
Toast: a printed from main, listint = 1
Still No change in array.
我應該如何更改我的代碼才能正常工作?
你嘗試過調用arrayadaptermin.notifyDataSetChanged();在對適配器進行更改以刷新listView之後 –