我需要能够使用“添加”按钮向布局添加按钮。问题是我需要每个按钮都有一个OnClickListener()/ onClick方法。我想每次按下“添加”按钮然后我会向数组添加一个新按钮,但我不确定添加监听器并为我创建的每个按钮实现onClick方法。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SmartChronometer chrono = (SmartChronometer) findViewById(R.id.chrono);
final Button start = (Button) findViewById(R.id.button2);
start.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (chrono.isRunning())
chrono.pause();
else {
chrono.chronoStart();
}
}
});
}
每次点击“添加”按钮,我都需要添加计时器,按钮和听众。
答案 0 :(得分:0)
设置所有的clicklisteners就像你一样!
在creat上调用findViewById(R.id.btnSecond).setVisibility(View.GONE);
,然后点击第一个按钮
Button btnSecond;
...
public void onClick(View v) {
findViewById(R.id.btnSecond).setVisibility(View.VISIBLE);
if (btnSecond.getVisibility() == View.VISIBLE); {
findViewById(R.id.btnThird).setVisibility(View.VISIBLE);}
}
通过这种方式,您可以将所有信息放在java文件中,并将所有按钮放在xml中,但在点击之前它们将被隐藏。
这是一种方式,其他答案我来了。祝你好运:)
答案 1 :(得分:0)
实现OnClickListener
Button add = (Button) findViewById (R.id.addButton);
add.setOnClickListener (this);
List<Button> buttons = new ArrayList <Button>();
for (int i = 0; i < buttons.size (); i++){
buttons.get (i).setOnClickListener (this);
}
@Override
public void onClick (View v){
for (int i = 0; i < buttons.size (); i++){
if (v.getId () == buttons.get (i).getId ()){
// do stuff you want
}else if (v.getId() == R.id.addButton){
//add button
}
}
}
希望这会起作用,没有测试过。