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. 사용할 수 있습니다 .

이 노트에 좋은 사이의 차이 그 OnItemClickListenerOnItemSelectedListener미묘한 소리 동안 항목 선택과 집중이 당신의 터치 모드와 관련된으로, 사실 의미이다 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();
}

여기서 코드를보고 다운로드 할 수 있습니다