我的项目单击两个按钮,显示今天按下按钮的次数。
单击A按钮时,显示在C按钮上按下按钮的次数。 然后单击B按钮显示在D按钮上按下按钮的次数。
我的来源
aBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClickCount();
}
});
bBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClickCount();
}
});
public void ClickCount() {
Button cBtn = (Button) findViewById(R.id.cBtn);
Button dBtn = (Button) findViewById(R.id.dBtn);
//a button click count work
//1,,2,,,3,,,4,
cBtn.setText(String.valueOf(resultC));
dBtn.setText(String.valueOf(resultD));
}
首先我尝试检查Log.d(TAG, resultC , resultD)
日志通常会增加。
但setText
只会增加计数结果C.
如果更改行dBtn和cBtn。
dBtn.setText(String.valueOf(resultD));
cBtn.setText(String.valueOf(resultC));
仅显示计数dBtn resultD。
日志在resultC和resultD中递增。 但显示结果。只有带有setText的resultC才会出现
如何解决这个问题?我基本上都知道这个问题。 但我不知道这个问题。
感谢。
答案 0 :(得分:1)
它的发生是因为你没有增加resultC和的价值 resultD
所以试试这个:
aBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultC=resultC+1;
ClickCount();
}
});
bBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resultD=resultD+1;
ClickCount();
}
});
public void ClickCount() {
Button cBtn = (Button) findViewById(R.id.cBtn);
Button dBtn = (Button) findViewById(R.id.dBtn);
//a button click count work
//1,,2,,,3,,,4,
cBtn.setText(String.valueOf(resultC));
dBtn.setText(String.valueOf(resultD));
}
答案 1 :(得分:0)
在类级别而不是本地函数级别声明Button
Button cBtn;
Button dBtn;
在onCreate()回调中初始化按钮而不是ClickCount()函数:
cBtn = (Button) findViewById(R.id.cBtn);
dBtn = (Button) findViewById(R.id.dBtn);
如果从函数返回计数并将其设置为onClickListener,如下所示:
aBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count=ClickCount();
cBtn.setText(String.valueOf(count));
}
});
bBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count=ClickCount();
dBtn.setText(String.valueOf(count));
}
});
答案 2 :(得分:0)
尝试以下代码
aBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClickCount("a");
}
});
bBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClickCount("b");
}
});
public void ClickCount(String key) {
Button cBtn = (Button) findViewById(R.id.cBtn);
Button dBtn = (Button) findViewById(R.id.dBtn);
//a button click count work
//1,,2,,,3,,,4,
if(key.equalsIgnoreCase("a")){
cBtn.setText(String.valueOf(resultC));
}
if(key.equalsIgnoreCase("b")){
dBtn.setText(String.valueOf(resultD));
}
}