Мне нужен список в диалоговом окне с каждой строкой, имеющей имя приложения, значок и флажок. Я использовал класс адаптера, который генерирует каждую строку. я сделал, как:setOnItemClickListener() для ListView недоступен
lv = (ListView) findViewById(R.id.aplist);
lv.setAdapter(applistadapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
/* some code*/
} });
public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> {
\t private List<ApplicationInfo> appsList = null;
\t private Context context;
\t private PackageManager packageManager;
\t private TextView appName;
\t private ImageView iconview;
\t CheckBox check;
\t boolean[] itemChecked;
\t public ApplicationAdapter(Context context, int textViewResourceId,
\t \t \t List<ApplicationInfo> appsList) {
\t \t super(context, textViewResourceId, appsList);
\t \t this.context = context;
\t \t this.appsList = appsList;
\t \t packageManager = context.getPackageManager();
\t \t itemChecked = new boolean[appsList.size()];
\t \t Log.wtf("c", "34werty");
\t }
\t @Override
\t public int getCount() {
\t \t return ((null != appsList) ? appsList.size() : 0);
\t }
\t
\t @Override
\t public boolean isEnabled(int position) {
\t \t return true;
\t }
\t @Override
\t public ApplicationInfo getItem(int position) {
\t \t Log.wtf("c", "23werty");
\t \t return ((null != appsList) ? appsList.get(position) : null);
\t }
\t @Override
\t public long getItemId(int position) {
\t \t return position;
\t }
\t @Override
\t public View getView(final int position, View convertView, ViewGroup parent) {
\t \t View view = convertView;
\t \t if (null == view) {
\t \t \t LayoutInflater layoutInflater = (LayoutInflater) context
\t \t \t \t \t .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
\t \t \t view = layoutInflater.inflate(R.layout.row, null);
\t \t \t Log.wtf("c", "12werty");
\t \t }
\t \t ApplicationInfo data = appsList.get(position);
\t \t if (null != data) {
\t \t \t Log.wtf("c", "werty");
\t \t \t appName = (TextView) view.findViewById(R.id.app_name);
\t \t \t // TextView packageName = (TextView)
\t \t \t // view.findViewById(R.id.app_paackage);
\t \t \t iconview = (ImageView) view.findViewById(R.id.app_icon);
\t \t \t check = (CheckBox) view.findViewById(R.id.checkbox1);
\t \t \t appName.setText(data.loadLabel(packageManager));
\t \t \t // packageName.setText(data.packageName);
\t \t \t iconview.setImageDrawable(data.loadIcon(packageManager));
\t \t \t
\t \t \t check.setChecked(false);
\t \t \t if (itemChecked[position])
\t \t \t \t check.setChecked(true);
\t \t \t else
\t \t \t \t check.setChecked(false);
\t \t \t check.setOnClickListener(new OnClickListener() {
\t \t \t \t @Override
\t \t \t \t public void onClick(View v) {
\t \t \t \t \t // TODO Auto-generated method stub
\t \t \t \t \t if (check.isChecked())
\t \t \t \t \t \t itemChecked[position] = true;
\t \t \t \t \t else
\t \t \t \t \t \t itemChecked[position] = false;
\t \t \t \t \t check.setTag(position);
\t \t \t \t }
\t \t \t });
\t \t }
\t \t return view;
\t }
};
Теперь проблема заключается в том, что управление никогда не переходит в setOnItemClickListener().
Пожалуйста, помогите мне решить эту проблему.
спасибо.
[Проверить здесь] (http://stackoverflow.com/questions/20208285/listview-itemclick-not-work/20208788#20208788) – Dev
Можете ли вы опубликовать свой код адаптера? – mjp66
@DroneDev Я посетил эту ссылку .. и опробовал решение .. но это не решило проблему. Я не могу найти причину, по которой мой onItemClick() недоступен –