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();
}
you can take a look and download code here
Use setOnItemClickListener() api in your activity. Following is the sample.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<> parent, View view, int position, long id)
{
// your code here.
}
});
In Kotlin, add a listener to your listView as simple as java
your_listview.setOnItemClickListener { parent, view, position, id ->
Toast.makeText(this, position, Toast.LENGTH_SHORT).show()
}
참고URL : https://stackoverflow.com/questions/2468100/how-to-handle-listview-click-in-android
'Programing' 카테고리의 다른 글
IEnumerable이 null인지 또는 비어 있는지 확인하는 방법은 무엇입니까? (0) | 2020.06.21 |
---|---|
Firefox에서 캐싱을 끄는 방법? (0) | 2020.06.21 |
String.split에 파이프 구분 기호가 필요한 이유는 무엇입니까? (0) | 2020.06.20 |
인수로 전달 된 TypeScript 객체의 기본값 설정 (0) | 2020.06.20 |
AngularJ에서 CORS를 활성화하는 방법 (0) | 2020.06.20 |