나는 listview에서 클릭하고 싶은 버튼이 있습니다. 그러나 문제는 클릭 할 때 현재 리스너 호출을 인식 할 수없는 것입니다. 사전에listview 항목에있는 버튼의 onclick 리스너를 호출하는 방법
덕분에 ... 당신은 목록 어댑터의 getView()
기능 내부의 button.setOnClickListener()
을 추가해야합니다 :)
나는 listview에서 클릭하고 싶은 버튼이 있습니다. 그러나 문제는 클릭 할 때 현재 리스너 호출을 인식 할 수없는 것입니다. 사전에listview 항목에있는 버튼의 onclick 리스너를 호출하는 방법
덕분에 ... 당신은 목록 어댑터의 getView()
기능 내부의 button.setOnClickListener()
을 추가해야합니다 :)
전체 목록 항목을 처리하지 않으려면 listview에 수신기를 설정하지 마십시오. 당신은 예를 아래에 주어진 같은 목록 항목의 개별 뷰에 대한 리스너를 설정할 수 있습니다
public class MyArrayAdapter extends ArrayAdapter<Map<String, String>> {
private Context mContext;
public MyArrayAdapter(Context context, int textViewResourceId,
List<Map<String, String>> objects) {
super(context, textViewResourceId, objects);
mContext = context;
}
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(
R.layout.list_row, null, false);
}
final Map<String, String> data = (Map<String, String>) getItem(position);
ImageView imageView = (ImageView) convertView
.findViewById(R.id.imageView);
imageView.setImageResource(Integer.parseInt(data.get("image")));
TextView textView = (TextView) convertView
.findViewById(R.id.textViewTitle);
textView.setText(data.get("name"));
Button button = (Button) convertView
.findViewById(R.id.buttonShow);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.startActivity(new Intent(mContext,
DetailActivity.class).putExtra(EXTRA_IMAGE_URL,
data.get("url")));
}
});
return convertView;
}
}
, 목록보기 또는 버튼이다.
나는 그것을 시도했지만 문제는 StartActivity가 getview() 함수에서 인식되지 않는다는 것이다. –
@SajadBinNazir는 컨텍스트를 사용자 정의 어댑터에 전달하고 해당 컨텍스트를 사용하여 startActivity를 호출한다. –
'startActivity()'는 컴파일되지 않지만'YourActivity .this.startActivity()'또는'mContext.startActivity()'(@ Homam의 응답을 사용하는 경우) 제대로 작동합니다. –
먼저 사용자 지정 어댑터 ArrayAdapter와 또는 BaseAdapter 확장하고 그가의 getView 메서드가 만들 필요가있다. 이 메서드 내에서 OnlickListener를 button으로 설정할 수 있습니다. 링크 예를 들어 사용자 정의 어댑터를 만들
:
는http://developer.android.com/reference/android/widget/Adapter.html
후 로그 캣 – edwin
과 함께 코드'의 getView() '코드가 도움이 될 것입니다. post –