2014-10-24 2 views
0

Это для поиска слова на TextViewКак принять решение в OnClick

public void viewWord(View view) 
    { 

     score = (TextView)findViewById(R.id.yourScore); 
     tv2 = (TextView)findViewById(R.id.tv2); 
     tv3 = (TextView)findViewById(R.id.tv3); 
     searchWord = (ImageView) findViewById(R.id.searchWord); 
     wordList = (ListView) findViewById(R.id.wordList); 
     text = (AutoCompleteTextView) findViewById(R.id.textHere); 
     wordList = (ListView) findViewById(R.id.wordList); 

     //SearchWord in AutoCompleteTextView text 
     //Display equivalent score of word in TextView score 
     String s1= search.getText().toString(); 
     String s2= dbHelper.getData(s1); 
     score.setText(s2); 
     tv2.setText(s2); 
     tv3.setText(s2); 

     //Get data from textview  
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>()); 
     wordList.setAdapter(adapter);  
     adapter.add(text.getText().toString()); 
     adapter.notifyDataSetChanged(); 
     text.setText(""); 
     add(); 


    } 

    public void add(){ 
     x = Integer.parseInt(tv2.getText().toString()); 
     y = Integer.parseInt(tv3.getText().toString()); 
     z = x + y; 
     score.setText(Double.toString(z)); 
    } 

В моем приложении, я использую ImageView искать слово и показывать счет. Я с трудом в отображении баллов по 1 TextView, так что я решил сделать это 2. Я хочу, чтобы мои ImageView функционировать так:

if(onMyImageViewFirstClick){ 
display the score on textview1 
} 
else{ 
if(onMyImageViewSecondClick){ 
display the score on textview2 
} 

, как я могу сделать это таким образом? Любые предложения будут высоко оценены :)

Примечание: Я новичок в программировании на андроид. Буду признателен, если вы также поможете мне с кодами

+0

Создайте переменную 'int' в качестве счетчика и увеличивайте ее при нажатии кнопки и проверьте номер в' if/else'? – codeMagic

+0

Можете ли вы помочь мне закодировать его? это мое первое приложение, поэтому я не очень хорошо разбираюсь в создании кодов. –

+0

Вы имеете в виду 2 последовательных клика на 'ImageButton'? – Simas

ответ

2

Вы можете сделать это с переменной Changin класса его значение от 0 - 1, например:

private int optionTxtView = 0 

    imageButton = (ImageButton) findViewById(R.id.imageButton1); 
      imageButton.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View arg0) { 
        if(optionTxtView == 0){ 
        //display the score on textview1 
        optionTxtView = 1; 
        }else{ 
        //display the score on textview2  
        optionTxtView = 0; 
        } 
       } 
      }); 

или вы можете использовать логическое значение (предложенное @mapo)

private boolean optionTxtView; 

     imageButton = (ImageButton) findViewById(R.id.imageButton1); 
       imageButton.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View arg0) { 
         if(optionTxtView){ 
         //display the score on textview1 
         optionTxtView = false; 
         }else{ 
         //display the score on textview2  
         optionTxtView = true; 
         } 
        } 
       }); 

Таким образом, в соответствии с вашим кодом, решение должно быть:

 //declare a boolean variable 
private int optionTxtView = 0 

    public void viewWord(View view) { 
    ... 
    ... 
    ... 
      //SearchWord in AutoCompleteTextView text 
      //Display equivalent score of word in TextView score 
      String s1= search.getText().toString(); 
      String s2= dbHelper.getData(s1); 
      score.setText(s2); 

        if(optionTxtView == 0){ 
         //display the score on textview1 
         tv2.setText(s2); 
         optionTxtView = 1; 
        }else{ 
         //display the score on textview2  
         tv3.setText(s2); 
         optionTxtView = 0; 
        } 
    ... 
    ... 
    ... 
     } 
+1

Почему бы не использовать boolean? – mapodev

+0

У меня есть мой вопрос, отредактированный, я включил код, который я использую .. вы можете помочь мне решить мою проблему с помощью этого кода? –

+0

ОК уверен, но где ваш образButton? :) – Jorgesys

0

Вот как вы можете реализовать счетчик кликов.

Обратите внимание, как вы сбросите счетчик, если зарегистрировано всего 2 клика. Как только это произойдет, счетчик начнется снова и снова, сначала коснется tv1, а затем tv2.

// Find TextViews before (so you don't have to repeat this expensive operation) 
final TextView tv1 = findViewById(R.id.textView1); 
final TextView tv2 = findViewById(R.id.textView2); 
imageButton.setOnClickListener(new View.OnClickListener() { 
    int numberOfClicks = 0; 

    @Override 
    public void onClick(View view) { 
     ++numberOfClicks; 
     if(numberOfClicks < 2){ 
      tv1.setText("Some text"); 
     } else if(numberOfClicks >= 2){ 
      tv1.setText("Some other text"); 
      // Reset the click counter 
      numberOfClicks = 0; 
     } 
    } 
}); 
+0

У меня есть мой код выше, вы можете помочь мне с этим? –

Смежные вопросы