홈 화면을 길게 누르면 나타나는 메뉴와 비슷한 아이콘이있는 항목 목록을 표시 할 수 있도록 사용자 지정 어댑터를 만들고 있습니다.Android ListView 사용자 지정 어댑터의 항목을 선택할 수 없음
목록 항목을 클릭 할 수없는 몇 가지 이유가 있습니다. D 패드로 이동할 수는 있지만 어떤 방식 으로든 클릭 할 수는 없습니다. 문제가 AlertDialog와 함께 사용하고 있다고 생각 했으므로 다른 곳에서 작동하는 어댑터를 교체했지만 동일한 문제가있었습니다.
ArrayList<IconListItem> mItems;
LayoutInflater mInflater;
public IconListAdapter(Context context, ArrayList<IconListItem> items) {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mItems = items;
}
public IconListAdapter(Context context) {
this(context, new ArrayList<IconListItem>());
}
public void add(IconListItem item) {
mItems.add(item);
notifyDataSetChanged();
return item;
}
public void remove(IconListItem item) {
mItems.remove(item);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mItems.size();
}
@Override
public IconListItem getItem(int position) {
return mItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if(convertView == null){
view = mInflater.inflate(R.layout.two_line_icon_list_item, null);
} else {
view = convertView;
}
IconListItem item = mItems.get(position);
TextView lineOne = (TextView) view.findViewById(R.id.firstLine);
TextView lineTwo = (TextView) view.findViewById(R.id.secondLine);
ImageView iconImage = (ImageView) view.findViewById(R.id.icon);
lineOne.setVisibility(View.VISIBLE);
lineTwo.setVisibility(View.VISIBLE);
iconImage.setVisibility(View.VISIBLE);
lineOne.setText(item.getText());
if (item.getSubtext() == null)
lineTwo.setVisibility(View.GONE);
else
lineTwo.setText(item.getSubtext());
if (item.getIcon() == null)
iconImage.setVisibility(View.GONE);
else
iconImage.setImageDrawable(item.getIcon());
return view;
}
을 그리고 XML 그것은 팽창 것 :
내 어댑터는 다음과 같습니다
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="6dip"
>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:id="@+id/firstLine"
android:ellipsize="marquee"
android:inputType="text"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="1"
android:ellipsize="marquee"
android:id="@+id/secondLine"
android:inputType="text"
/>
</LinearLayout>
</LinearLayout>
편집 : 나는 그들이 클릭하지 말할 때, 나는 그들이 항목을 할 수 있다는 것을 의미
내가 그들을 누르거나 onItemClick이 호출되지 않았을 때 주황색으로 강조 표시하지 않습니다. 내 코드에서
나는이 다른 목적을 위해 다른 어댑터를 가지고 있고 완벽하게
this.foos= foos;
fa = new FooAdapter(this.foos);
fooList.setAdapter(fa);
// View the details for an item when it is selected
fooList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent i = new Intent(MyActivity.this, MyOtherActivity.class);
i.putExtra("foo", ((fooAdapter)arg0.getAdapter()).getItem(arg2));
i.putExtra("list_position", arg2);
MyActivity.this.startActivityForResult(i, 0);
}
});
작동하지만
IconListAdapter ila = new IconListAdapter(this);
ila.add(0, "Test 1", android.R.drawable.ic_menu_mylocation);
ila.add(0, "Test 2", android.R.drawable.ic_menu_edit);
ila.add(0, "Test 3", android.R.drawable.ic_menu_search);
groupList.setAdapter(ila);
의 처음 3 줄을 바꿀 때 작동이 중지됩니다.
당신은 "클릭 할 수 없습니다"무엇을 의미합니까? 클릭 리스너를 어디에서 설정하고 있는지 알려주십시오. – Cristian
@Cristian Castiblanco 질문에 대한 더 많은 정보를 편집했습니다. –