我尝试使用imagebutton和文本进行列表视图。不知何故,当我运行它时,我的应用程序崩溃了。我需要有人可以通过我的日志查看我所犯的错误。请帮忙,因为我没有编码背景。ListView与ImageButton和文本
这里是我的main_java = IngredientChoices.java
public class IngredientChoices extends AppCompatActivity {
ListView lv;
String[] category_titles={"Baking Goods", "Beverages/Alcohol", "Dairy", "Fruit", "Herbs & Spices", "Meat", "Nuts & Seeds", "Pasta, Breads & Grains", "Poultry", "Sauces, Soup & Condiments", "Seafood", "Vegetables"};
int [] category_icons={R.drawable.bakingood,R.drawable.beverages, R.drawable.dairy, R.drawable.apple, R.drawable.herbs, R.drawable.meat, R.drawable.nuts, R.drawable.bread, R.drawable.poultry, R.drawable.soup, R.drawable.seafood, R.drawable.vegetable};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ingredient_choices);
lv = (ListView) findViewById(R.id.listView);
//Adapter
IngredientCategoryAdapter adapter = new IngredientCategoryAdapter(this, category_titles, category_icons);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), category_titles[position], Toast.LENGTH_SHORT).show();
}
});
}
}
这里是我的adapter.java
public class IngredientCategoryAdapter extends ArrayAdapter<String> {
// Declarations
int[] category_icons={};
String[] category_titles={};
Context c;
LayoutInflater inflater;
public IngredientCategoryAdapter(Context context, String[] category_title, int[] category_icon) {
super(context, R.layout.ingcategory_list_view, category_title);
this.c=context;
this.category_icons=category_icons;
this.category_titles=category_titles;
}
public class ViewHolder {
TextView category_title;
ImageButton category_icon;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
inflater= (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.ingcategory_list_view, null);
}
//our viewholder object
final ViewHolder holder = new ViewHolder();
// Initialize our views
holder.category_title= (TextView) convertView.findViewById(R.id.category_title);
holder.category_icon=(ImageButton) convertView.findViewById(R.id.category_icon);
//Assign data
holder.category_icon.setImageResource(category_icons[position]);
holder.category_title.setText(category_titles[position]);
return convertView;
}
}
谢谢!
崩溃日志
03-08 15:23:17.545 8166-8224 /? E/BooksSync:软错误 com.google.android.apps.books.net.HttpHelper $ AuthIoException:403:Forbidden 请求:GET https://encrypted.google.com/books?cp_activate=2%3AC4q8DQZi0PFAsa4LWbLehD8AAAA6gAd6-baW_r-qDKNVNPTjsycPW8Iqe-VhNJcXNKhi02FNTv6sb_oW-B67bwycWnmqttWYrKqXuC56--BtZlv5 HTTP/1.1 03-08 15:23:17.555 8166-8224 /? E/BooksSync:同步错误 com.google.android.apps.books.net.HttpHelper $ AuthIoException:403:Forbidden 请求:GET https://encrypted.google.com/books?cp_activate=2%3AC4q8DQZi0PFAsa4LWbLehD8AAAA6gAd6-baW_r-qDKNVNPTjsycPW8Iqe-VhNJcXNKhi02FNTv6sb_oW-B67bwycWnmqttWYrKqXuC56--BtZlv5 HTTP/1.1 03-08 15:23:20.418 1281-1281 /? E/LSO:LSO服务尚未准备好! 03-08 15:23:20.518 1281-1281 /? E/SoundPool:加载时出错/system/media/audio/ui/lens_flare_tap.ogg 03-08 15:23:20.518 1281-1281 /? E/SoundPool:error loading /system/media/audio/ui/lens_flare_unlock.ogg 03-08 15:23:20.758 300-18933 /? E/AwesomePlayer:LPAPlayer ::不超过30秒的剪辑时长设置不被支持,默认为60秒 03-08 15:23:20.758 300-18933 /? E/AwesomePlayer:LPAPlayer ::不超过30秒的剪辑时间设置不被支持,默认为60秒 03-08 15:23:20.958 300-19477 /? E/AwesomePlayer:LPAPlayer ::不超过30秒的剪辑时间设置不被支持,默认为60秒 03-08 15:23:20.958 300-19477 /? E/AwesomePlayer:LPAPlayer ::不超过30秒的剪辑持续时间设置不被支持,默认为60秒 03-08 15:23:22.050 8338-8338 /? E/Diag_Lib:Diag_LSM_Init:未能打开句柄至诊断驱动程序,错误= 2 03-08 15:23:23.571 8267-8267 /? E/SMD:smd_init start 03-08 15:23:23.571 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:23:24.332 884-1422 /? E /看门狗:!@Sync 10416 03-08 15:23:24.572 8267-8267 /? E/SMD:smd接口打开失败errno是2 -1 03-08 15:23:25.573 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:23:26.574 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:23:27.505 8339-8339 /? E/Diag_Lib:Diag_LSM_Init:未能打开句柄到诊断驱动程序,错误= 2 03-08 15:23:27.565 8267-8267 /? E/ 03-08 15:24:00.677 884-2563 /? E/PersonaManagerService:inState():stateMachine为null! 03-08 15:24:01.058 8434-8434 /? E/AndroidRuntime:致命例外:main 进程:com.example.cassieleong.delishcart,PID:8434 java.lang.ArrayIndexOutOfBoundsException:length = 0;索引= 0 在com.example.cassieleong.delishcart.IngredientCategoryAdapter.getView(IngredientCategoryAdapter.java:59) 在android.widget.AbsListView.obtainView(AbsListView.java:2823) 在android.widget.ListView.measureHeightOfChildren(ListView的.java:1290) at android.widget.ListView.onMeasure(ListView.java:1202) at android.view.View.measure(View.java:18596) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout。的java:728) 在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:464) 在android.view.View.measure(View.java:18596) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java: 5827) at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610) at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:677) at android.view.View。 measure(View.java:18596) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.support.v7.widget。 ContentFr ameLayout.onMeasure(ContentFrameLayout.java:135) 在android.view.View.measure(View.java:18596) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827) 在android.widget.LinearLayout。 measure.ChildBeforeLayout(LinearLayout.java:1435) at android.widget.LinearLayout.measureVertical(LinearLayout.java:721) at android.widget.LinearLayout.onMeasure(LinearLayout.java:612) at android.view.View.measure( View.java:18596) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827) 在android.widget.FrameLayout.onMeasure(FrameLayout.java:430) 在android.view.View.measure(查看。 JA VA:18596) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827) 在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1435) 在android.widget.LinearLayout.measureVertical(LinearLayout.java: 721) 在android.widget.LinearLayout.onMeasure(LinearLayout.java:612) 在android.view.View.measure(View.java:18596) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2897) at android.view.View.measure( V iew.java:18596) 在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2248) 在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1306) 在android.view.ViewRootImpl.performTraversals(ViewRootImpl。在android.view.View.RootImpl $ TraversalRunnable.run(ViewRootImpl.java:6642) android.view.Choreographer $ CallbackRecord.run() Choreographer.java:777) at android.view.Choreographer.doCallbacks(Choreographer.java:590) at android.view.Choreographer.doFrame(Choreographer.java:560) at android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:763) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper .loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method。调用(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 03-08 15:24:01.448 884-8480 /? E/android.os.Debug:!@Dumpstate> sdumpstate -k -t -z -d -o/data/log/dumpstate_app_error 03-08 15:24:01.578 8267-8267 /? E/SMD:smd接口打开失败errno是2 -1 03-08 15:24:02.579 8267-8267 /? E/SMD:smd接口打开失败errno为2 -1 03-08 15:24:02.639 8503-8503 /? E/Diag_Lib:Diag_LSM_Init:未能打开句柄到诊断驱动程序,错误= 2 03-08 15:24:03.580 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:24:04.581 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:24:05.592 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:24:06.593 8267-8267 /? E/SMD:smd接口打开失败,errno为2 -1 03-08 15:24:07.594 8267-8267 /? E/SMD:smd接口打开失败errno是2 -1
您能粘贴崩溃记录吗? –
我已编辑帖子。谢谢 –