我有一个我正在创建的应用程序,其中有Fragment
包含列表视图,此ListView
托管在主活动中。
列表中的每个项目包含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 :(得分:0)
首先要做的事情:
关于你的问题:
在自定义数组适配器中,您可以为每个按钮设置单击侦听器,以执行您想要的操作:
@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;
}
答案 1 :(得分:0)
你可以使用adapter-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);
}