16
데이터베이스의 레코드를 통해 채워지는 목록보기가 있습니다. 이제 일부 레코드를 볼 수는 있지만 선택할 수 없도록 설정해야합니다. 어떻게하면됩니까?목록보기에서 항목을 비활성화하는 방법은 무엇입니까?
여기에 다음과 같이
public class SomeClass extends ListActivity {
private static List<String> products;
private DataHelper dh;
public void onCreate(Bundle savedInstanceState) {
dh = new DataHelper(this);
products = dh.GetMyProducts(); /* Returns a List<String>*/
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.myproducts, products));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
레이아웃 파일 myproducts.xml이 내 코드입니다 :
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp">
</TextView>
이 해결책에주의하십시오. BaseAdapter의 설명서에는 다음과 같이 나와 있습니다. "지정된 위치에있는 항목이 구분 기호가 아닌 경우 true를 반환합니다." 즉, false를 반환하면 항목이 구분 항목입니다. 일부 휴대 전화에서는 일반 항목과 구분 항목간에 Android 분할자를 그릴 수 없습니다. – Janusz
그건 분명히 사실이고 전에 그 문제에 부딪 혔습니다. 나는 행 레이아웃 자체에 구분선을 포함하고 getView()에 숨 겼거나 숨 겼거나 항목을 사용 가능하게 설정했지만 클릭을 무시하고 눌린 상태가 아닌 배경을 설정하여 보이지 않게했습니다 클릭 가능. –
목록에 섹션이 포함되도록 "제목"칸을 배치하는 것이 좋습니다! – htafoya