[android] Android에서 ListView 클릭을 처리하는 방법
ListView에서 클릭 이벤트를 수신하려면 어떻게합니까?
이것이 내가 지금 가진 것입니다
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
내가 다음을 할 때
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
클릭하면 아무것도하지 않는 것 같습니다.
그리고 모든 코드는 Activity를 확장하는 클래스 내에 있습니다.
답변
목록보기에서 setOnItemClickListener
답변
ListView 객체가 lv라고 가정하고 다음을 수행하십시오.
lv.setClickable(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Object o = lv.getItemAtPosition(position);
/* write you handling code like...
String st = "sdcard/";
File f = new File(st+o.toString());
// do whatever u want to do with 'f' File object
*/
}
});
답변
어댑터 클래스 getView () 메소드에서 팽창 된보기를 “Clickable”및 “Click 이벤트를들을 수 있음”으로 설정해야합니다.
convertView = mInflater.inflate(R.layout.list_item_text, null);
convertView.setClickable(true);
convertView.setOnClickListener(myClickListener);
다음과 같이 ListActivity에서 클릭 리스너를 선언하십시오.
public OnClickListener myClickListener = new OnClickListener() {
public void onClick(View v) {
//code to be written to handle the click event
}
};
BaseAdapter를 확장하여 어댑터를 사용자 정의하는 경우에만 적용됩니다.
자세한 내용은 ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java를 참조하십시오.
답변
내 앞의 두 가지 대답은 정확합니다 OnItemClickListener
. 사용할 수 있습니다 .
이 노트에 좋은 사이의 차이 그 OnItemClickListener
와 OnItemSelectedListener
미묘한 소리 동안 항목 선택과 집중이 당신의 터치 모드와 관련된으로, 사실 의미이다 AdapterView
.
터치 모드에서는 기본적으로 선택 및 초점이 없습니다. 당신은 좀 걸릴 수 있습니다 여기에 주제에 대한 자세한 정보를 원하시면.
답변
이 솔루션은 실제로 최소한의 코드이며 코드를 망치지 않습니다.
당신에 list_item.xml (! NOT 목록보기)를 할당 속성은 안드로이드 : 온 클릭을 다음과 같이 :
<RelativeLayout android:onClick="onClickDoSomething">
그런 다음 활동 에서이 메소드를 호출하십시오.
public void onClickDoSomething(View view) {
// the view is the line you have clicked on
}
답변
setOnItemClickListener
누군가 말 했어야 했어요
코드는 다음과 같아야합니다.
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text or do whatever you need.
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
답변
먼저 클래스는 클릭 리스너를 구현해야합니다.
implements OnItemClickListener
그런 다음 리스너를 ListView로 설정하십시오.
yourList.setOnItemclickListener(this);
마지막으로 clic 메소드를 작성하십시오.
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(MainActivity.this, "You Clicked at " +countries[+ position], Toast.LENGTH_SHORT).show();
}
여기서 코드를보고 다운로드 할 수 있습니다