2013-12-23 3 views
2

У меня есть приложение, которое позволяет вам нажимать кнопки для добавления и вычитания +5 или -5 и +1 или -1 из стартового значения 20. Я настроил его так, чтобы нажата кнопка, она поместит это значение в строку и отобразит ее так, чтобы пользователь мог просмотреть историю того, что они нажали. У меня есть метод, называемый reset(); который сбрасывает начальное значение обратно до 20, я хотел бы знать, как и очистить строку значенийочистить значение от строки android

add5.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     counter += 5; 
     updateDisplay(); 

     // add the click history for p1 
     String tmText = (String) btnPressedTV.getText(); 
     btnPressedTV.setText(tmText + "\n" + String.valueOf(counter)); 
    } 
}); 

sub5.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     counter -= 5; 
     updateDisplay(); 

     // add the click history for p1 
     String tmText = (String) btnPressedTV.getText(); 
     btnPressedTV.setText(tmText + "\n" + String.valueOf(counter)); 
    } 
}); 

    void reset() { 
    // TODO Auto-generated method stub 
    counter = 20; 
    display.setText(String.valueOf(20)); 
    display.setTextColor(Color.BLACK); 
    tmText = ""; 

} 
+0

Является ли ваше значение 20 хранится в переменной 'counter'? Можете ли вы показать свой код метода 'reset()'? – GrIsHu

+0

см. Мой ответ ........ –

+0

Во время reset.set значение строки как «null». значение счетчика равно 0. – Yugesh

ответ

1

Попробуйте это ..

Используйте StringtmText в Global как ниже и как ваш целоеcounter

String tmText; 
int counter; 

и resetметод

public void reset() 
{ 
    tmText = ""; 
    counter = 20; 
} 
+0

Я добавил то, что у вас есть, и он по-прежнему не сбрасывает строку при вызове функции сброса. – user3104719

+0

@ user3104719 где вы вызвали метод 'reset()' – Hariharan

+0

Я вызываю функцию сброса через опцию меню, он сбрасывает счетчик int обратно на начальное значение 20, а также сбрасывает цвет текста в черный (это изменяется на красный или зеленый на основе номера). Они будут сброшены, как и должны, строка не работает. – user3104719

0

Убедитесь, что String должен быть переменной класса, а не локальная переменная.
Чтобы очистить значение переменной Строка вызова попробовать это

class Sample 
{ 
String str; // class variable (string) 
int counter=20; // class variable (integer) 
: 
: 
: 
reset.setOnClickListener(new View.OnClickListener() { // button click 
    @Override 
    public void onClick(View v) { 
     str = ""; // you can clear the string value like this 
     counter = 20; // you can reset the integer value like this 
    } 
}); 
: 
: 
: 
public void resetfunction() // method 
{ 
    str = ""; // you can clear the string value like this 
    counter = 20; // you can reset the integer value like this 
} 
: 
: 
: 
} 
0

Вы можете сбросить ур строки, назначая двойные кавычки в него

ул = «»;

0

Я предлагаю использовать в своем классе OnClickListener. Разница объясняется здесь The different OnClickListener implementation ways

Вот код, чтобы объяснить, что я имею в виду:

public class MainActivity extends Activity implements OnClickListener { 

    Button add5; 
    Button sub5; 
    Button reset; 

    int counter; 
    String tmText; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_activity); 

    //init the counter var 
    counter = 20; 


    //get handles to the buttons in your xml declaration 
    add5 = (Button) findViewById(R.id.add5); 
    sub5 = (Button) findViewById(R.id.sub5); 
    reset = (Button) findViewById(R.id.reset); 

    //attach the buttons the onclickListener 
    add5.setOnClickListener(this); 
    sub5.setOnClickListener(this); 
    reset.setOnClickListener(this); 

    @Override 
    public void onClick(View arg0) { 
     switch(arg0.getId()) { 
     case R.id.add5: 
      // +5 code 
      break; 
     case R.id.sub5: 
      // minus 5 code 
      break; 
     case R.id.reset; 
      counter = 20; 
      tmText = ""; 
     } 
    } 
} 

Если вы хотите, чтобы очистить значения, отображаемые в TextView:

TextView myTextView = (TextView) findViewById(R.id.myTextView); 
myTextView.setText(""); 
Смежные вопросы