0

我有一个应用程序,我正在创建,其中有一个Fragment包含列表视图,此ListView托管在主要活动。ListView中的按钮阵列适配器和片段 - Android的

列表中的每个项目都包含10-20个按钮。如何让点击监听器连接到它们并在点击时执行操作,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

请阅读[问问]。你有什么尝试?你做了什么研究?你有错误吗?你能告诉我们一些代码吗? – Jack

回答

0

首先第一件事情:

  1. 你的ListView应该是你的片段不是你的主要活动内。

至于你的问题:

内,您的自定义阵列适配器,您可以设置单击侦听器的每一个按钮,做你想做的类似:

@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是对listFragment的引用,以便我可以传递点击操作。虽然它没有运作。 –

+0

然后使用一个接口。请参阅:http://developer.android.com/training/basics/fragments/communicating.html – egfconnor

0

您可以使用适配器getView () 例如:

@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

我认为这可能实际上为我需要它的工作。我会尝试一下并作出回应。 –

相关问题