2012-03-26 3 views
1

Я создал пользовательский адаптер для listview, который содержит текст и изображения, при щелчке определенного элемента списка мне нужно открыть другое действие, но я не могу запустить событие clickview 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

+0

Можете ли вы показать нам свой основной xml и row xml? – RobinHood

+0

Я собираюсь отправить вам целое .. некоторое время – Ishtiaq

ответ

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?recipeIrec=1418&recipeFrom=ViewTOC – Ishtiaq

+0

Да, я реализовал этот пример и после добавления нескольких строк кода, которые он работает для меня, работает ли он для вас или нет? – RobinHood

+0

это дает ошибку в FindViewById ... :( – Ishtiaq

0

Добавить слушателем

@Override 

общественное мнение GetView (интермедиат положение, Вид 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; 

}

 Смежные вопросы

  • Нет связанных вопросов^_^