我的想法是,我的应用上有按钮,可以导致单个活动。我希望它具有相同的文本模板,但单击不同的按钮时会出现不同的内容。我已经完成了XML文件,我被困在代码上。我正在考虑使用开关盒,但是可以用开关盒吗?还是我太野心了?
编辑:这是我到目前为止的代码:public class SelectKeys extends Activity {
private static final int[] buttonIDs = {R.id.cKey, R.id.cSharpKey, R.id.dKey, R.id.dSharpKey, R.id.eKey, R.id.fKey, R.id.fSharpKey, R.id.gKey, R.id.gSharpKey, R.id.aKey, R.id.aSharpKey, R.id.bKey};
private Button[] bt = new Button[buttonIDs.length];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_keys);
for (int i = 0; i < buttonIDs.length; i++) {
final int b = i;
bt[b] = (Button) findViewById(buttonIDs[i]); // Fetch the view id from array
bt[b].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//opens up new screen
Intent intent = new Intent(getApplicationContext(), ChordKeys.class);
startActivity(intent);
}
});
}
}
public final void keyButton(final View v)
{
switch(v.getId())
{
case R.id.cKey:
{
setContentView(R.layout.activity_key_c);
break;
}
case R.id.cSharpKey:
{
setContentView(R.layout.activity_csharp_dflat);
break;
}
// adding more cases later once I get this to work
}
}
}
答案 0 :(得分:0)
当然可以使用switch case来完成,你只需要创建一个实现onClickListener
的类,并将所有按钮链接到这个监听器,如下所示:
final Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(new MyButtonListener());
class MyButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
int id=v.getId();
switch (id){
case R.id.button1:
button.setText("Text1");
break;
case **:
break;
default:
break;
}
答案 1 :(得分:0)
要有一个可在xml布局中处理的集中式Click处理程序:
将此方法添加到Java代码
public final void clickHandler(final View v)
{
switch(v.getId())
{
case R.id.btn1:
{
// Do something, when you click btn1
break;
}
case R.id.btn2:
{
// Do something else, when you click btn2
break;
}
// ... more cases ...
}
}
在xml布局中:
...
<Button
android:id="@+id/btn1"
...
android:onClick="clickHandler"
/>
<Button
android:id="@+id/btn2"
...
android:onClick="clickHandler"
/>
...
注意(1):这对于按钮有效不仅,对ImageButtons,ImageViews,TextViews,...
也是有效的。注意(2):您可以同时使用混合视图(例如:一个Button,2个TextView和一个ImageView都可以使用相同的clikHandler()
方法)。