2011-08-25 56 views
0

在我的应用程序中,我有一个活动组,其中我有一个自定义ListView与ImageView,TextView和微调。当我点击微调时出现错误。这里是代码..活动组内自定义列表中的微调问题

final ListView list = (ListView)findViewById(R.id.submenu_list); 

     MyCustomAdapter adapter = new MyCustomAdapter(this, mylist, 0, null, null); 
     list.setAdapter(adapter); 
     list.setTextFilterEnabled(true); 


private class MyCustomAdapter extends SimpleAdapter { 

     public MyCustomAdapter(Context context, 
     List<? extends Map<String, ?>> data, int resource, 
     String[] from, int[] to) { 
      super(context, data, resource, from, to); 
     } 

     public View getView(final int position, View convertView, ViewGroup parent) { 
      if (convertView == null) { 
       convertView = getLayoutInflater().inflate(R.layout.submenu_items, 
      null); 

      } 

((TextView) convertView.findViewById(R.id.food_name)) 
     .setText(estimated[position]); 

((TextView) convertView.findViewById(R.id.prize)) 
.setText("Price : "+price[position]); 

((ImageView) convertView.findViewById(R.id.imageview)) 
     .setImageResource(image[position]); 



Spinner spinner = (Spinner) convertView.findViewById(R.id.spinner); 

    ArrayAdapter<CharSequence> sadapter = ArrayAdapter.createFromResource(getParent(), R.array.number, android.R.layout.simple_spinner_item); 
    sadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(sadapter); 


return convertView; 
} 

}

在我的活动组内的另一个活动,我有简单的布局与微调。为了生成所说的纺丝器我有我的代码如下:

public class FoodDetailPage extends Activity { 

    Spinner spinner; 
    Button back_button,my_order,add_order; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.food_details, null); 
     this.setContentView(viewToLoad); 

     back_button = (Button) findViewById(R.id.back_button); 

     add_order = (Button) findViewById(R.id.add_order); 

     back_button.setOnClickListener(new OnClickListener() { 
      public void onClick(View view) { 
       Intent intent =new Intent(FoodDetailPage.this,SubMenu.class); 
       startActivity(intent); 
      } 
     }); 


     this.spinner =(Spinner) findViewById(R.id.spinner); 

     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.number, R.layout.spinnerlayout); 
     adapter.setDropDownViewResource(R.layout.spinnerlayout); 
     spinner.setAdapter(adapter); 

    } 

问题是放置一个离心器中时的ListView定制与活动组,我的应用程序挂起。

+0

什么是错误或者你正在得到。 –

+0

非常感谢你:)这很好! –

回答

2

尝试通过this.getPrent()MyCustomAdapter这样的:

MyCustomAdapter adapter = new MyCustomAdapter(this.getPrent(), mylist, 0, null, null); 

,使上下文变量在MyCustomAdapter

private class MyCustomAdapter extends SimpleAdapter { 
     Context mContext; 
     public MyCustomAdapter(Context context,List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 
     { 
      super(context, data, resource, from, to); 
      mContext = context; 
     } 
     //getView implementation 
} 

并传递mContextArrayAdaptergetView()

ArrayAdapter.createFromResource(mContext, R.array.number, android.R.layout.simple_spinner_item);