我是Android新手,我想为自己创建一个锻炼应用程序,为此我的想法是 -
1)主要活动将显示一个添加按钮以添加练习数。让我们假设我需要5个练习,这样就可以动态创建5个按钮。
2)现在按钮创建了我需要的是当我点击任何按钮时调用相应的textToSpeech,因为这个textToSpeech类将说出要启动的练习的名称。由于每个按钮都与不同的锻炼名称和时间相关联。
活动图片 - Main Activity,Add number of Buttons
我不知道怎么做,因为有很多按钮以及如何为每个按钮调用不同的textToSpeech。
答案 0 :(得分:1)
只需在您的活动中添加onCLickListener
即可View.OnClickListener onClickListener=new View.OnClickListener() {
@Override
public void onClick(View v) {
// put condition as per id of view
}
};
//在此处创建动态添加点击列表器
Button button=new Button(ButtonActivity.this);
button.setText("Button"+i);
button.setId(1000+i);
button.setOnCLickListener(onClickListener);
我希望我能给你解决方案。
答案 1 :(得分:0)
在活动
上实施 OnClickListener()@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.oneButton:
// do your code
break;
case R.id.twoButton:
// do your code
break;
case R.id.threeButton:
// do your code
break;
default:
break;
}
}
我希望这对你有所帮助,一切顺利。
答案 2 :(得分:0)
如果我以正确的方式理解您的问题,您需要在创建按钮时将ID分配给按钮 启动五个按钮循环
for(i=1;i<=5;i++){
Button button=new Button(Activity.this);
button.setId(R.id.existingButtonId+i);
button.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
button.offsetTopAndBottom(40);
button.setHint("hint x ");
yourLayout.addView(button);
}
在您的活动上实现onClickListener并使用
之后public void onClick(View v) {
switch (v.getId()) {
case R.id.ex1:
//call textToSpeech for exercise one
break;
case R.id.ex2:
//call textToSpeech for exercise two
break;
default:
break;
}
}
答案 3 :(得分:0)
在充气新按钮/视图时添加clicklistener。
private void addNewExcercise(String exercise) {
Button button = new Button(ActivityMain.this);
button.setText(exercise);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do ur task here
}
});
parentLinearLayout.addView(button);
}
答案 4 :(得分:0)
SecondActivity(按钮显示)无需创建活动创建Java文件并在清单中添加文件
GridLayout gridLayout=new GridLayout(this);
ViewGroup.LayoutParams layoutParams=new ViewGroup.LayoutParams(GridLayout.LayoutParams.MATCH_PARENT,GridLayout.LayoutParams.WRAP_CONTENT);
gridLayout.setLayoutParams(layoutParams);
gridLayout.setColumnCount(2);
setContentView(gridLayout);
if(getIntent()!=null){
int buttoncount=getIntent().getIntExtra("value",0);
for(int i=0;i<buttoncount;i++){
Button button=new Button(ButtonActivity.this);
button.setText("Button"+i);
button.setId(1000+i);
button.setBackgroundResource(R.drawable.button_back);
button.setPadding(10,10,10,10);
gridLayout.addView(button);
}
}
背景的Xml文件(在drawable中创建此文件)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#66ff0000" />
<size
android:width="120dp"
android:height="120dp"/>
</shape>
任何混淆然后使用它是Java文件的完整代码
public class ButtonActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GridLayout gridLayout=new GridLayout(this);
ViewGroup.LayoutParams layoutParams=new ViewGroup.LayoutParams(GridLayout.LayoutParams.MATCH_PARENT,GridLayout.LayoutParams.WRAP_CONTENT);
gridLayout.setLayoutParams(layoutParams);
gridLayout.setColumnCount(2);
setContentView(gridLayout);
if(getIntent()!=null){
int buttoncount=getIntent().getIntExtra("value",0);
for(int i=0;i<buttoncount;i++){
Button button=new Button(ButtonActivity.this);
button.setText("Button"+i);
button.setId(1000+i);
button.setBackgroundResource(R.drawable.button_back);
button.setPadding(10,10,10,10);
gridLayout.addView(button);
}
}
}
}
清单文件
<activity android:name=".ButtonActivity"></activity>
并使用上面的背景文件......