2012-03-26 105 views
1

我创建的自定义适配器包含文本和图像,在特定的列表项我不得不打开另一个活动的点击列表视图,但我不能开火的ListView点击事件,下面是我的代码。Listview点击不火。

谢谢。

适配器

public class ImageAndTextAdapter extends ArrayAdapter<String> { 

private LayoutInflater mInflater; 
private Context myCtx; 
private String[] mStrings; 
private TypedArray mIcons; 

private int mViewResourceId; 

public ImageAndTextAdapter(Context ctx, int viewResourceId, 
     String[] strings, TypedArray icons) { 
    super(ctx, viewResourceId, strings); 
    myCtx = ctx; 
    mInflater = (LayoutInflater)ctx.getSystemService(
      Context.LAYOUT_INFLATER_SERVICE); 

    mStrings = strings; 
    mIcons = icons; 

    mViewResourceId = viewResourceId; 
} 

@Override 
public int getCount() { 
    return mStrings.length; 
} 

@Override 
public String getItem(int position) { 
    return mStrings[position]; 
} 

@Override 
public long getItemId(int position) { 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    convertView = mInflater.inflate(mViewResourceId, null); 

    ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon); 
    iv.setImageDrawable(mIcons.getDrawable(position)); 


    TextView tv = (TextView)convertView.findViewById(R.id.option_text); 
    tv.setText(mStrings[position]); 

    return convertView; 
} 
} 

主胡亚蓉

public class OurWishingWellActivity extends ListActivity implements OnClickListener{ 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.list_view_image); 

    Context ctx = getApplicationContext(); 
    Resources res = ctx.getResources(); 

    String[] options = res.getStringArray(R.array.reg_item_names); 
    TypedArray icons = res.obtainTypedArray(R.array.reg_icons); 

    setListAdapter(new ImageAndTextAdapter(ctx, R.layout.list_item, 
      options, icons)); 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

} 


} 
+0

你有没有任何ImageBut吨或按钮在你的清单项目? – user936414 2012-03-26 04:49:35

+0

你能告诉我们你的主要xml和行xml吗? – RobinHood 2012-03-26 04:52:34

+0

我要给你发送整个..只是有一段时间 – Ishtiaq 2012-03-26 04:55:15

回答

0

尊敬Aafag#

你的onclick的ListView写像下面。

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    Toast.makeText(AdvancedListViewActivity.this, "working", Toast.LENGTH_SHORT).show(); 
    System.out.println("working!!!!!!!!!"); 
} 
+0

是的,你是对的,但我是新来的这 你已经张贴了关于列表视图。在我的情况下没有在任何XML列表,只是一个文本视图和图像查看它创建在运行时,我需要一个onItemClick事件,可以调用一些其他活动.. 这是实际的例子http://androidcookbook.com/Recipe.seam;jsessionid=5424397F3130CE7769FF47DD67742911?recipeId=1418&recipeFrom=ViewTOC – Ishtiaq 2012-03-26 06:03:54

+0

是的,我实施这个例子,添加这几行代码后,它为我工作,它是否也为你工作? – RobinHood 2012-03-26 06:21:36

+0

它提供了一个错误在FindViewById ... :( – Ishtiaq 2012-03-26 06:42:47

0

添加听者

@Override 

公共视图getView(INT位置,查看convertView,父的ViewGroup){ convertView = mInflater.inflate(mViewResourceId,null);

ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon); 
iv.setImageDrawable(mIcons.getDrawable(position)); 


TextView tv = (TextView)convertView.findViewById(R.id.option_text); 
tv.setText(mStrings[position]); 

convertView .setOnClickListener(新OnClickListener(){

 @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      startActivity(); 


     } 
    }); 

return convertView; 

}