我尝试对不同的视图使用相同的方法。每次,我想传递一个不同的TextView
来使用,如下所示:
ibIncreaseA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//increase the counter in textView
increase(view);
}
});
ibIncreaseB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//increase the counter in textView
increase(view);
}
});
这是理想的方法:
public void increase (View textView ){
int calculatedValue;
try {
String counter = textView.getText().toString();
calculatedValue = Integer.parseInt(counter) + 1;
tvNumOfTickets.setText(String.valueOf(calculatedValue));
}catch (Exception e){
e.printStackTrace();
}
}
我的问题是方法中的textView
不允许我使用.setText()
。
我怎样才能让它发挥作用?
答案 0 :(得分:0)
通过将View作为一个TextView传递给increase()
方法,它可以为您节省持续向下转换的麻烦。 (即 - 呼叫increase((TextView)view);
)
让你的增加方法接受TextView而不是现在的视图。
public void increase (TextView textView ){
...
}
答案 1 :(得分:-1)
尝试以下代码
try {
String counter = ((TextView)textView ).getText().toString();
calculatedValue = Integer.parseInt(counter) + 1;
((TextView)textView ).setText(String.valueOf(calculatedValue));
}catch (Exception e){
e.printStackTrace();
}
答案 2 :(得分:-1)
wallet2 = (Button)findViewById( R.id.wallet2 ) ;
//enter code here
wallet3 = (Button)findViewById( R.id.wallet3 );
//enter code here
walletlis(wallet2);
//enter code here
walletlis(wallet3);
//enter code here
public void walletlis(Button wallet)
{
wallet.setOnClickListener(new View.OnClickListener()
{
//enter code here
public void onClick(View view)
{ });
}
}
//enter code here