我有點麻煩加載內容到一個新鮮的listView。如果我使用setContentView,它顯示一個空列表,如果我嘗試更改我的意圖應用程序崩潰。請問我做錯了什麼。主要活動類是:加載列表查看新的活動
ListView lv;
Context context;
private int [] prgmImages={R.drawable.phones_and_tablets,R.drawable.home_and_kitchen_appliances,
R.drawable.beauty_health_and_personal_care,R.drawable.fashion,R.drawable.subscriptions,
R.drawable.electronics,R.drawable.windows_logo,R.drawable.music_and_movies,
R.drawable.baby_kids_and_toys,R.drawable.sports,R.drawable.books_and_stationery,
R.drawable.fastfood_and_eatery};
private String [] prgmNameList={"Phones & Tablets","Home & Kitchen","Beauty, Health & Personal Care",
"Fashion","Subscriptions","Electronics","Computer & Accessories","Music & Movies","Baby, Kids & Toys",
"Sports & Fitness","Books & Stationery","Fast Food, Drinks & Groceries"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this; // Instantiate context after listView's properties are set.
lv=(ListView) findViewById(R.id.listView);
lv.setAdapter(new MainCustomAdapter(this, this.prgmNameList, this.prgmImages));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position){
case 0: { setContentView(R.layout.activity_fone_cats); break; }
case 1: { setContentView(R.layout.activity_home_kit_cats); break; }
case 2: { setContentView(R.layout.activity_beauty_care_cats); break; }
case 3: { setContentView(R.layout.activity_fashion_cats); break; }
case 4: { setContentView(R.layout.activity_telecoms_cats); break; }
case 5: { setContentView(R.layout.activity_electronics_cats); break; }
case 6: { setContentView(R.layout.activity_computers_cats); break; }
case 7: { setContentView(R.layout.activity_entertainment_cats); break; }
case 8: { setContentView(R.layout.activity_toys_cats); break; }
case 9: { setContentView(R.layout.activity_sports_cats); break; }
case 10: { setContentView(R.layout.activity_stationeries_cats); break; }
case 11: { setContentView(R.layout.activity_f_food_drinks_grocery_cats); break; }
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
我的主要XML佈局結構如下:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="25dp"
android:textStyle="bold"
android:textColor="@color/colorBlack"
android:text="@string/action_companyName" />
<ImageView
android:id="@+id/imageView"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon" />
<TextView
android:id="@+id/textView_1"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action_motto"
android:textSize="18sp"
android:textStyle="italic|bold"/>
<TextView
android:id="@+id/textView_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action_query"
android:textColor="#3a94d5" />
<SearchView
android:id="@+id/searchView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:queryHint="@string/action_query2"
android:contentDescription="@string/action_query2" />
<ImageView
android:id="@+id/imageView_1"
android:layout_width="match_parent"
android:layout_height="100sp"
android:scaleType="fitXY"
android:src="@drawable/ad" />
<TextView
android:id="@+id/textView_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="."
android:textColor="#FFFFFF" />
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
我建立了下列自定義適配器:
String [] category; // The category a sales-item belongs to
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public MainCustomAdapter(MainActivity currentActivity, String[] prgmNameList, int[] prgmImages) {
context = currentActivity;
category = prgmNameList;
imageId = prgmImages;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return category.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public class Holder{ // Set an object to hold category items for each position in the list
TextView txt;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder=new Holder();
View rowView = inflater.inflate(R.layout.programlist, null);
holder.txt=(TextView) rowView.findViewById(R.id.textView1);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);
holder.txt.setText(category[position]); // Hold the name of the selected category
holder.img.setImageResource(imageId[position]); // Hold the icon of the selected category
return rowView;
}
programlist佈局始建如下:
<ImageView
android:id="@+id/imageView1"
android:layout_gravity="center"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24dp"
android:text="TextView" />
我建activity_fone_cats這樣的:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="25dp"
android:textStyle="bold"
android:textColor="@color/colorBlack"
android:text="@string/action_companyName" />
<ImageView
android:id="@+id/imageView"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon" />
<TextView
android:id="@+id/textView_1"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action_motto"
android:textSize="18sp"
android:textStyle="italic|bold"/>
<TextView
android:id="@+id/textView_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action_query"
android:textColor="#3a94d5" />
<SearchView
android:id="@+id/searchView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:queryHint="@string/action_query2"
android:contentDescription="@string/action_query2" />
<ImageView
android:id="@+id/imageView_1"
android:layout_width="match_parent"
android:layout_height="100sp"
android:scaleType="fitXY"
android:src="@drawable/ad" />
<TextView
android:id="@+id/textView_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="."
android:textColor="#FFFFFF" />
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
請我如何確保在列表中的項目後單擊在主要活動中一個ListItem顯示以及如何停止從應用程序如果我想要改變Intents而不是切換contentView,會崩潰嗎?
請發佈異常的堆棧跟蹤,「我的應用程序崩潰」不夠描述。 – Egor
發佈日誌消息 – sasikumar
在onItemClickListener(...)方法中使用setContentView(...)的目的是什麼? – Srinivasan