0

목록보기가 포함 된 Fragment이있는 응용 프로그램이 있습니다.이 ListView은 주 활동에서 호스팅됩니다.ListView의 버튼 배열 어댑터 및 조각 - Android

목록의 각 항목에는 10-20 개의 버튼이 있습니다. Click listener를 붙이고 클릭 할 때 IE에서 정보를 업데이트하는 동작을 수행하는 방법은 무엇입니까?

편집 : 자세한 내용

listFragment의 내부 : 주요 활동의 내부

public void myButtonHandler(View view){ 
//Handles method actions 
} 

:

public void myButtonHandler(View v){listFragment.myButtonHandler(v); 

} 

오류 :

05-09 11:15:27.900 7122-7122/project.rapid.proto E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: project.rapid.proto, PID: 7122 
java.lang.IllegalStateException: Could not find a method myButtonHandler(View) in the activity class android.app.Application for onClick handler on view class android.widget.ImageButton with id 'required2' 

버튼 클릭 수행 작업 파편 안에 들어있는 정보에 내가 왜 전화를 시도했는지. 첫째

+0

[ask]를 읽으십시오. 너 뭐 해봤 니? 어떤 연구를하셨습니까? 오류가 있습니까? 몇 가지 코드를 보여줄 수 있습니까? – Jack

답변

0

우선 일 :

  1. 귀하의 ListView에 당신의 조각 아닌 주요 활동의 내부에 있어야한다. 귀하의 질문에 관해서는

: 사용자 정의 배열 어댑터 내부

당신은 당신이 원하는 일을 각 버튼에 대한 리스너를 클릭하여 설정할 수 있습니다에 비슷한 : 당신은 어댑터의 getView 사용할 수 있습니다

@Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder holder; 
      if (convertView == null) { 
       convertView = mInflater.inflate(R.layout.YOUR_CUSTOM_LAYOUT, null); 
       holder = new ViewHolder(); 
       // Set ViewHolder views to your custom views 
       convertView.setTag(holder); 
      } else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      // Set your different views via holder.yourView.setText(), etc. 
      // Set your click listeners for the views you want via 
      holder.myButton.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        //Do what you want 
       } 

      }); 
      return convertView; 
     } 
+0

목록보기가 조각에 포함되어 있습니다. 주 활동에 표시되는 listFragment는 click 액션을 전달할 수 있도록 listFragment에 대한 참조입니다. 그것은 작동하지 않지만. –

+0

그런 다음 인터페이스를 사용하십시오. 참조 : http://developer.android.com/training/basics/fragments/communicating.html – egfconnor

0

() 예 :

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 
    View v=super.getView(position, convertView, parent); 
    View clickView=v.findViewById(R.id.clickView); 
    clickView.setOnClickListener(this); 
} 
+0

이것이 실제로 필요한 기능을 수행 할 수 있다고 생각합니다. 나는 그것을 밖으로 시도하고 응답 할 것이다. –

관련 문제