【发布时间】:2014-07-13 05:15:41
【问题描述】:
我试图在不同的视图中使用按钮,但我得到了 NullPointerException,但现在,我尝试了这种方式,我摆脱了 NPE,但我仍然无法使按钮工作
layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = layoutInflater.inflate(R.layout.single_for_final, null, true);
Button mView = (Button) v.findViewById(R.id.whyyounowork);
mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
}
});
这是我的 ArrayAdapter
class ListForFinale extends ArrayAdapter<String> {
private final Activity context;
private final String[] imageId;
private String[] web;
public ListForFinale(Activity context,
String[] web, String[] imageId) {
super(context, R.layout.list_single, web);
this.context = context;
this.web = web;
this.imageId = imageId;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.single_for_final, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt1);
Button button = (Button) rowView.findViewById(R.id.whyyounowork);
TextView imageView = (TextView) rowView.findViewById(R.id.img1);
txtTitle.setText(web[position]);
// Double d = imageId[position];
// String s= d.toString();
imageView.setText(imageId[position]);
return rowView;
}
}
我正在尝试从表格布局的一行中获取文本字段和按钮并将其添加到列表视图中。文本字段工作完美,但按钮的 onClickListener 用于从列表视图中删除特定行,所以我能做到的唯一方法是使用 Activity 类中的按钮。但是,当在列表视图中单击时,该按钮不会执行任何操作。
我的java源文件是on GitHub for more details
【问题讨论】:
-
您没有在
getView()方法中设置任何 OnClickListener。 -
什么类和方法包含第一个代码sn-p?
-
我需要在我的活动中使用按钮的 onclicklistener 所以我在那里定义了它。
-
那么你应该创建一个命名类而不是使用匿名类。
-
@Code-Apprentice myActivity2.java 包含第一个代码 sn-p。
标签: android listview button view layout-inflater