【发布时间】:2019-07-19 00:58:36
【问题描述】:
上下文:My Style Activity 对应于具有 4 个 imageButtons 和一个常规按钮的布局。我希望用户一次只能选择一个 imageButton。单击常规按钮后,我想将有关选择哪个 imageButton 的数据发送到我的 ReviewActivity,同时打开我的 ReflectionActivity。
我有 2 个问题。首先,我如何干掉围绕 OnClick 和禁用的 imageButtons 的代码?其次,如何根据选择的 imageButton 设置变量并将其发送到另一个有意图的活动?我相当确定我已经以漫长/艰难的方式做到了这一点。非常感谢所有建议!
公共类 StyleActivity 扩展 AppCompatActivity {
Button btn_open_reflection;
ImageButton style1;
ImageButton style2;
ImageButton style3;
ImageButton style4;
public static final String style_selection = "com.example.application.hearttoart.style_selection";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_style );
// set up image buttons for the onClick function
style1 = (ImageButton)findViewById(R.id.style1);
style2 = (ImageButton)findViewById(R.id.style2);
style3 = (ImageButton)findViewById(R.id.style3);
style4 = (ImageButton)findViewById(R.id.style4);
// TODO: DRY up when possible, lots of repeated code here
style1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
style2.setEnabled(false);
style3.setEnabled(false);
style4.setEnabled(false);
String style_selection = "@string/style1";
}
});
style2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
style1.setEnabled(false);
style3.setEnabled(false);
style4.setEnabled(false);
String style_selection = "@string/style2";
}
});
style3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
style1.setEnabled(false);
style2.setEnabled(false);
style4.setEnabled(false);
String style_selection = "@string/style3";
}
});
style4.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
style1.setEnabled(false);
style2.setEnabled(false);
style3.setEnabled(false);
String style_selection = "@string/style4";
}
});
btn_open_reflection =(Button) findViewById(R.id.btn_open_style);
btn_open_reflection.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View view){
// Open Style Activity - Navigate to Activity from the Click
openReflection();
sendStyle();
}
});
}
public void sendStyle() {
Intent styleIntent = new Intent(StyleActivity.this, ReviewActivity.class );
styleIntent.putExtra("style", style_selection);
}
public void openReflection() {
Intent intent = new Intent( this, ReflectionActivity.class );
startActivity( intent );
}
}
【问题讨论】:
标签: java android onclicklistener imagebutton