如何为不在 main_activity.xml 中的视图设置 OnClickListener?
How to set OnClickListener for view that is not in the main_activity.xml?
如标题所述,我尝试为另一个 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 文件中。需要帮助
通过将另一个 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();
}
});
根据提供的内容,您似乎没有将视图添加到 parent 布局。
假设 parent 布局已经膨胀,您只需添加视图,就像这样
yourParentView.addView(view);
虽然这可能不会产生预期的效果,因为这很可能(假设您没有玩过 parent 的引力)将视图放在左上角。
您需要通过 LayoutParams 将视图放置在您想要的位置。
例如 RelativeLayout.LayoutParams 或 LinearLayout.LayoutParams
一旦您选择并创建了布局参数,您就可以使用它
yourParentView.addView(view, createdLayoutParams);
如标题所述,我尝试为另一个 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 文件中。需要帮助
通过将另一个 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();
}
});
根据提供的内容,您似乎没有将视图添加到 parent 布局。
假设 parent 布局已经膨胀,您只需添加视图,就像这样
yourParentView.addView(view);
虽然这可能不会产生预期的效果,因为这很可能(假设您没有玩过 parent 的引力)将视图放在左上角。
您需要通过 LayoutParams 将视图放置在您想要的位置。
例如 RelativeLayout.LayoutParams 或 LinearLayout.LayoutParams
一旦您选择并创建了布局参数,您就可以使用它
yourParentView.addView(view, createdLayoutParams);