2014-02-26 3 views
0

나는이 줄을 캐스팅했다 : lv1.setOnItemClickListener ((OnItemClickListener) this); 빨간색의 구불 구불 한 선이 생기기 때문입니다. onItemClick 함수를 제대로 사용하고 있습니까?내 ListView가 작동하지 않습니다. 여기에 뭔가 빠졌어

public class MainActivity extends Activity { 

private ListView lv1; 
private String lv_arr[] = { 
     "Android", 
     "iPhone", 
     "Blackberry", 
     "AndroidPeople" 
}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    lv1 = (ListView) findViewById(R.id.ListView01); 
    lv1.setOnItemClickListener((OnItemClickListener) this); 
    //by using setAdapter method in ListView, we can add string array in list 

    lv1.setAdapter(new ArrayAdapter<String>(
      this, android.R.layout.simple_list_item_1, lv_arr)); 

} 

public void onItemClick(AdapterView arg0, View v, int position, long arg3){ 

    Toast.makeText(this, "You clicked" + lv_arr[position],  Toast.LENGTH_LONG).show(); 

} 



} 

답변

1

귀하의 MainActivity 당신에게 "빨간 squigly 라인"을주고 있었다 이유 OnItemClickListener를 구현하지 않습니다. 이 당신이 OnItemClickListener를 구현해야 당신의 ListView

0

로 설정 때 MainActivityOnItemClickListener 캐스팅 할 필요가 없습니다 의미합니다

public class MainActivity extends Activity implements OnItemClickListener { 

:

당신의 클래스 선언을 변경해야합니다 또는 대신 쓸 수있는 경우

lv1.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      Toast.makeText(this, "You clicked" + lv_arr[position],  Toast.LENGTH_LONG).show(); 
     } 
    }); 
0

각 행을 맞춤화 된 onClickListener()의 경우 ArrayAdapter (예)를 확장하고 getView() 방법으로 각 행에 onClickListener()을 구현해야합니다.

@Override 
public View getView(final int position, View convertView, final ViewGroup parent) { 
    // Speaking very vaguely, convertView represents each of your rows 
    if (convertView == null) { 
    ... 
    convertView.setOnClickListener(new View.OnClickListener() { 
     public void onClick(final View v) { 
     // Whetever you need 
     ... 
     } 
    } 
    }); 
    else 
    ... 

    // Rest of your implementation 
    ... 

    return convertView; 
} 
관련 문제