我在自定义列表中创建左抽屉时收到错误。 inflater
siliderAdapter.java
中public class Food extends ActionBarActivity {
ImageView licon;
ImageView menu_btn;
Intent i;
Intent intent;
ListView lv;
String[] foodIcon;
String[] FoodText;
String [] food_id;
ProgressDialog pDialog;
String[] userdata;
public HashMap<String, String> catagories = new HashMap<String, String>();
ArrayList<NavDrawerItem> mNavItems = new ArrayList<NavDrawerItem>();
String[] menu;
DrawerLayout dLayout;
ListView dList;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food);
licon=(ImageView)findViewById(R.id.l_icon);
menu_btn=(ImageView)findViewById(R.id.menu_btn);
/*menu = new String[]{"Home","Android","Windows","Linux","Raspberry Pi","WordPress","Videos","Contact Us"};
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,menu);
dList.setAdapter(adapter);
// dList.setSelector(android.R.color.holo_blue_dark);
*/
String[]data={"History","Food","Location","Faranchise","Terms & Conditions","Log Out"};
int[]icons={R.drawable.history,R.drawable.food,R.drawable.location,R.drawable.franchise,R.drawable.t_c,R.drawable.logout};
//menu = new siliderAdapter(data,icons);
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.navlist);
dList.setAdapter(new siliderAdapter(this,data,icons));
dList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show();
/*dLayout.closeDrawers();
Bundle args = new Bundle();
args.putString("Menu", menu[position]);
Fragment detail = new DetailFragment();
detail.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, detail).commit();*/
}
});
i=new Intent(this,Location.class);
intent=new Intent(this,SilideMenu.class);
if(this.getIntent().getExtras()!=null)
{
Bundle b=this.getIntent().getExtras();
String msg=b.getString("msg");
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
userdata=b.getStringArray("user_data");
// if(userdata!=null){
// user_data_bean ob = new user_data_bean();
//
//
// ob.set_User_id(userdata[0]);
// ob.set_user_name(userdata[1]);
// ob.set_email_id(userdata[2]);
// ob.set_phone_number(userdata[3]);
// ob.set_address(userdata[4]);
// ob.set_status(userdata[5]);
// ob.set_message(userdata[5]);
// }
}
new getFoodCategory().execute();
lv=(ListView) findViewById(R.id.food_list);
menu_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(intent);
drawer();
}
});
licon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(i);
}
});
}// end of onCreate method
public void drawer(){
String[]data={"History","Food","Location","Faranchise","Terms & Conditions","Log Out"};
int[]icons={R.drawable.history,R.drawable.food,R.drawable.location,R.drawable.franchise,R.drawable.t_c,R.drawable.logout};
//menu = new siliderAdapter(data,icons);
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
dList.setAdapter(new siliderAdapter(Food.this,data,icons));
// adapter.setAdapter(new siliderAdapter(Food.this,data,icons));
// adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,(new siliderAdapter(data,icons)));
// dList.setAdapter(adapter);
// dList.setSelector(android.R.color.holo_blue_dark);
dList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show();
/*dLayout.closeDrawers();
Bundle args = new Bundle();
args.putString("Menu", menu[position]);
Fragment detail = new DetailFragment();
detail.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, detail).commit();*/
}
});
}
class getFoodCategory extends AsyncTask<String, String, String[]> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(Food.this);
pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
protected void onPostExecute(String []result) {
super.onPostExecute(result);
lv.setAdapter(new CustomAdapter(Food.this,FoodText,foodIcon,food_id,userdata));
pDialog.dismiss();
}
@Override
protected String [] doInBackground(String... params) {
// TODO Auto-generated method stub
JSONArray Food_Text = null;
ArrayList<HashMap<String, String>> jCatagory = new ArrayList<HashMap<String, String>>();
getFoods cat=new getFoods();
String url="http://";
String jsonStr = cat.viewRecords(url, getFoods.GET, null);
//Log.d("Records", jsonStr);
String FoodPath = null;
if (jsonStr!= null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
Food_Text = jsonObj.getJSONArray("products");
for(int i=0; i<Food_Text.length();i++) {
JSONObject c = Food_Text.getJSONObject(i);
String foodId = c.getString("food_id");
// Log.d("Cat Id", catId);
String food_name = c.getString("name");
JSONArray files = c.getJSONArray("files");
for(int k = 0; k<files.length();k++){
JSONObject filesPart = files.getJSONObject(k);
FoodPath = filesPart.getString("path");
}
catagories.put("path"+i,FoodPath);
catagories.put("cat_name"+i, food_name);
catagories.put("foodId"+i, foodId);
}
//System.out.println("catagories Size="+catagories.size());
FoodText = new String [catagories.size()/3];
foodIcon = new String [catagories.size()/3];
food_id = new String[catagories.size()/3];
}
catch (JSONException e) {
Log.d("catch", "in the catch");
e.printStackTrace();
}
} else {
Log.e("JSON Data", "Didn't receive any data from server!");
}
for(int k=0; k<catagories.size();k++){
if(catagories.get("cat_name"+k)==null){
//continue;
}else{
FoodText[k]=catagories.get("cat_name"+k);
foodIcon[k]=catagories.get("path"+k);
food_id[k]=catagories.get("foodId"+k);
// jokesCates[k]=catagories.get("cat_name"+k);
//System.out.print("cat_name"+catagories.get("cat_name"+k)+"\n");
//System.out.print("Path"+catagories.get("path"+k)+"\n");
}
}
return null;
// TODO Auto-generated method stubs
}
}
}//end of class
膨胀,我收到错误。
食物活动类
import student.briyani.CustomAdapter.holder;
import com.squareup.picasso.Picasso;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class siliderAdapter extends BaseAdapter {
String [] text;
int[] imgIcon;
Context context;
private static LayoutInflater inflater=null;
/*public siliderAdapter(Food food, String [] data, int [] icon){
text=data;
imgIcon=icon;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}*/
public siliderAdapter(Food cat, String[] data, int[] icons) {
// TODO Auto-generated constructor stub
text=data;
imgIcon=icons;
context=cat;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return text.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public class holder{
ImageView img;
TextView txt;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final holder hldr=new holder();
View rowView = null;
//Bitmap bitmap = null;
rowView = inflater.inflate(R.id.navlist, null);
hldr.txt=(TextView) rowView.findViewById(R.id.siliderText);
hldr.img=(ImageView) rowView.findViewById(R.id.icon);
hldr.txt.setText(text[position]);
hldr.img.setImageResource(imgIcon[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/* String food_id=hldr.foodId.getText().toString();
//Toast.makeText(context, "food_id="+food_id, Toast.LENGTH_LONG).show();
Bundle b=new Bundle();
b.putString("food_id", food_id);
b.putStringArray("images", imgs);
b.putStringArray("userData", userData);
Intent Intent=new Intent(context, Menu.class);
Intent.putExtras(b);
context.startActivity(Intent);
*/
Toast.makeText(context, "Hello",Toast.LENGTH_LONG).show();
}
});
return rowView;
}
}
Silider适配器代码在这里
> 10-26 11:40:07.633: E/AndroidRuntime(1427): FATAL EXCEPTION: main
> 10-26 11:40:07.633: E/AndroidRuntime(1427):
> android.content.res.Resources$NotFoundException: Resource ID
> #0x7f090050 type #0x12 is not valid 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.content.res.Resources.loadXmlResourceParser(Resources.java:2115)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.content.res.Resources.getLayout(Resources.java:857) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.LayoutInflater.inflate(LayoutInflater.java:394) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.LayoutInflater.inflate(LayoutInflater.java:352) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> student.briyani.siliderAdapter.getView(siliderAdapter.java:68) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.AbsListView.obtainView(AbsListView.java:2033) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.ListView.makeAndAddView(ListView.java:1772) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.ListView.fillDown(ListView.java:672) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.ListView.fillFromTop(ListView.java:732) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.ListView.layoutChildren(ListView.java:1625) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.AbsListView.onLayout(AbsListView.java:1863) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1617)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.onLayout(LinearLayout.java:1401) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:907)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:431) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.onLayout(LinearLayout.java:1399) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:431) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.widget.LinearLayout.onLayout(LinearLayout.java:1399) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:431) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.View.layout(View.java:11278) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewGroup.layout(ViewGroup.java:4224) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.os.Handler.dispatchMessage(Handler.java:99) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> android.os.Looper.loop(Looper.java:137) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> android.app.ActivityThread.main(ActivityThread.java:4424) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> java.lang.reflect.Method.invokeNative(Native Method) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> java.lang.reflect.Method.invoke(Method.java:511) 10-26 11:40:07.633:
> E/AndroidRuntime(1427): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
> 10-26 11:40:07.633: E/AndroidRuntime(1427): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 10-26
> 11:40:07.633: E/AndroidRuntime(1427): at
> dalvik.system.NativeStart.main(Native Method)
Eror讯息
public class MyPublicClass {
public void method1(Data1 x) {
....call private method
}
public void method2(Data2 x) {
....call private method
}
private void methodX(String, int, int, double, String)
...do the work
}
}
答案 0 :(得分:0)
public siliderAdapter(Food cat, String[] data, int[] icons) {
text = data;
imgIcon = icons;
context = cat;
inflater = (LayoutInflater)context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
这一行
context = cat;
您将食物变量(cat)分配给上下文(上下文)类型的变量,这是一个错误。
修改构造函数并将Context作为参数传递。
public siliderAdapter(Context ctx, Food cat, String[] data, int[] icons) {
text = data;
imgIcon = icons;
context = ctx;
inflater = (LayoutInflater)context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}