Щелчок списка не является огнем. - PullRequest
1 голос
/ 26 марта 2012

Я создал пользовательский адаптер для просмотра списка, который содержит текст и изображения, при нажатии на конкретный элемент списка мне нужно открыть другое действие, но я не могу запустить событие щелчка просмотра списка, ниже приведен мой код.

Спасибо.

Адаптер

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

}


}

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Уважаемый Аафаг #

Вы должны написать на просмотр списка, как показано ниже.

  @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 голосов
/ 26 марта 2012

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

@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]);

convertView .setOnClickListener (new OnClickListener () {

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

            startActivity();


        }
    });

return convertView;

}

...