就像标题所说,我试图为另一个XML文件中的视图设置OnClickListener。我尝试了以下代码,虽然我没有得到任何异常,但它无效。
LayoutInflater layoutInflater = getLayoutInflater();
View view = layoutInflater.inflate(R.layout.single_row,null,false);
mImageButton = (ImageButton)view.findViewById(R.id.shareImageButton);
mImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "working on it", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
我的ImageButton位于另一个XML文件中。 NEEEEEED HELP
答案 0 :(得分:0)
使用另一个single_row.xml,将其包含在main_activity.xml文件中。
粘贴main_activity.xml文件中的代码:
<include layout:"@layout/single_row.xml" />
现在,您可以像使用main_activity.xml中的其他视图一样正常使用ImageButton。在MainActivity.class的onCreate()方法中添加以下代码。
ImageButton mImageButton = (ImageButton)findViewById(R.id.shareImageButton);
mImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "working on it", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
答案 1 :(得分:0)
根据提供的内容,您似乎没有将视图添加到父版面。
假设父布局已经膨胀,你只需添加视图,就像这样
yourParentView.addView(view);
这可能不会产生预期的影响,因为这很可能(假设您没有使用父母的重力)将视图放在左上角。
您需要通过LayoutParams将视图放在所需的位置。
示例是RelativeLayout.LayoutParams或LinearLayout.LayoutParams
一旦您选择并创建了layoutParams,就可以使用它来代替
yourParentView.addView(view, createdLayoutParams);