Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null
各位大神,我想在tabhost里添加一个listview 然后出现了上面的错误 求解啊
非常急,大白菜一个!
adapter.Java
package com.zjz;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.TextView;
public class Myadapter_2 extends BaseAdapter{
private Context context;
private List<Map<String, Object>> data;
private LayoutInflater layoutInflater;
public Myadapter_2(Context context,List<Map<String, Object>> data){
this.context=context;
this.data=data;
layoutInflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return data.size();
}
@Override
public Object getItem(int position) {
// TODO 自动生成的方法存根
return data.get(position);
}
@Override
public long getItemId(int position) {
// TODO 自动生成的方法存根
return position;
}
static class Viewholder{
ImageView carte_image;
TextView carte_name;
RatingBar carte_scroe;
TextView carte_monthlySales;
Button carte_price;
TextView scroe_rate2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO 自动生成的方法存根
Viewholder holder;
if(convertView==null){
convertView=layoutInflater.inflate(R.layout.carte_list, null);
holder=new Viewholder();
holder.carte_image=(ImageView)convertView
.findViewById(R.id.carte_image);
holder.carte_monthlySales=(TextView)convertView
.findViewById(R.id.carte_monthlySales);
holder.carte_name=(TextView)convertView
.findViewById(R.id.carte_name);
holder.carte_scroe=(RatingBar)convertView
.findViewById(R.id.carte_scroe);
holder.carte_price=(Button)convertView
.findViewById(R.id.carte_price);
holder.scroe_rate2=(TextView)convertView
.findViewById(R.id.score_rate2);
convertView.setTag(holder);
}else{
holder=(Viewholder)convertView.getTag();
}
View view=layoutInflater.inflate(R.layout.carte_list, null);
ImageView carte_image=(ImageView)view
.findViewById(R.id.carte_image);
TextView carte_name=(TextView)view
.findViewById(R.id.carte_name);
RatingBar carte_scroe=(RatingBar)view
.findViewById(R.id.carte_scroe);
TextView carte_monthlySales=(TextView)view
.findViewById(R.id.carte_monthlySales);
Button carte_price=(Button)view
.findViewById(R.id.carte_price);
TextView score_rate2=(TextView)view
.findViewById(R.id.score_rate2);
Map<String, Object> carte_adapter=data.get(position);
carte_image.setImageResource(
(Integer) carte_adapter.get(Carte.KEY_1));
carte_name.setText(
(CharSequence)carte_adapter.get(Carte.KEY_2));
carte_monthlySales.setText(
(CharSequence)carte_adapter.get(Carte.KEY_3));
carte_price.setText(
(CharSequence)carte_adapter.get(Carte.KEY_4));
score_rate2.setText(
(CharSequence)carte_adapter.get(Carte.KEY_5));
String str=(String)carte_adapter.get(Carte.KEY_5);
carte_scroe.setRating(Float.parseFloat(str));
return view;
}
}
Carte.java
package com.zjz;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.RatingBar;
public class Carte extends Activity{
public static final String KEY_1="carte_image";
public static final String KEY_2="carte_name";
public static final String KEY_3="carte_monthlySales";
public static final String KEY_4="carte_price";
public static final String KEY_5="score_rate2";
private RatingBar carte_scroe;
private List<Map<String, Object>> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.carte);
getData();
ListView carte_list=(ListView)this.findViewById(R.id.listView1);
Myadapter adapter= new Myadapter(Carte.this, list);
carte_list.setAdapter(adapter);
}
private List<Map<String, Object>> getData(){
list =new ArrayList<Map<String,Object>>();
for(int i=0;i<10;i++){
Map<String, Object> carte_adapter=new HashMap<String, Object>();
carte_adapter.put(KEY_1, R.drawable.ic_launcher);
carte_adapter.put(KEY_2, "康师傅");
carte_adapter.put(KEY_3, "月售"+i+"单");
carte_adapter.put(KEY_4, i+"元");
carte_adapter.put(KEY_5, i+"");
list.add(carte_adapter);
}
return list;
}
}
tabhost.java
package com.zjz;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
public class Restaurant_information extends TabActivity{
private TabHost tabhost;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
tabhost=this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.restaurant_information,
tabhost.getTabContentView(),true);
Intent itcarte=new Intent(this,Carte.class);
Intent itintroduction_layout=new Intent(this,Restaurant_introduction.class);
tabhost.addTab(tabhost.newTabSpec("tab1")
.setIndicator("菜单")
.setContent(itcarte));
tabhost.addTab(tabhost.newTabSpec("tab2")
.setIndicator("店铺信息")
.setContent(itintroduction_layout));
}
}
错误显示:
03-30 10:36:14.298: E/AndroidRuntime(1653): FATAL EXCEPTION: main
03-30 10:36:14.298: E/AndroidRuntime(1653): Process: com.zjz, PID: 1653
03-30 10:36:14.298: E/AndroidRuntime(1653): java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
03-30 10:36:14.298: E/AndroidRuntime(1653): at com.zjz.Myadapter.getView(Myadapter.java:111)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.AbsListView.obtainView(AbsListView.java:2347)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.ListView.measureHeightOfChildren(ListView.java:1270)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.ListView.onMeasure(ListView.java:1182)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.measureVertical(LinearLayout.java:875)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.View.measure(View.java:17547)
03-30 10:36:14.298: E/AndroidRuntime(1653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)