2017-03-09 5 views
0

私はeditTexts siteName1、siteName2、siteName3、siteURL1、siteURL2、siteURL3およびbuttons - clear1、clear2、clear2を持っています。変数名に番号を追加します。

clear1を押すと、siteName1とsiteURL1がクリアされます。 clear2を押すと、sitename2とsiteURL2がクリアされます。

ボタンと機能クリアのためにonClickListenerを作成しました。

public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.clear1: 
      clear(1); 
      break; 
     case R.id.clear2: 
      clear(2); 
      break; 
     case R.id.clear3: 
      clear(2); 
      break; 
     default: 
      break; 
    } 
} 

と機能

void clear(int i){ 
      siteName1.getText().clear(); 
      siteURL1.getText().clear(); 
     } 

私はすべての3つのボタンのための一つの関数を作りたいです。このようなことをする方法はありますか?

siteName + i.getText()。clear(); ?ですから、editTextをクリアするために3つの別々の関数を作成する必要はありません。ありがとう。

+1

Do not。配列(または適切なコレクション)を使用するだけです。また、「サイト」はすべてこれを行うクラスにラップする必要があります。 – Biffen

+0

あなたのHTMLコードを投稿できますか? –

+0

あなたは反射を介して行うことができますが、私はあなたの問題のためにそれをしません。おそらく単にパラメータとしてui要素のオブジェクトを取るメソッドを使用します。 'clear(siteName1、siteUrl1)'のように呼び出す – xander

答えて

1

変数の配列の作成を検討する必要があります。

EditText siteName[] = new EditText[3]; 

次に、それぞれをsiteName [0]、siteName [1]、およびsiteName [2]として参照できます。 siteURLとクリアボタンの場合も同様です。

このsiteName + i.getText()のようなものを作成する方法はありますか? ?

これは、その後siteName[i].getText().clear();

0

保存がすべてHashMap<Int, View>に土地を選定し、正しいサイト

0

ためmapiterateclear(int i)あなたを呼び出すときには、ハッシュマップ のハッシュマップを作成することになるボタンを追加し、ハッシュマップの対応するテキストビュー

public void onClick(View v) { 
    //pass the button view to clear function 
    clear(v);  
} 

void clear(View view){ 
    viewsHashMap.get(view).getText().clear();  
} 

私は、これはテーブルにあなたのサイト名のとSITEURLを入れて、あなたの問題

0

を解決する必要があります願っています。

ArrayList<EditText> siteaNames= new ArrayList(); 
ArrayList<EditText> siteURLS= new ArrayList(); 

各リストにedittextを入れます。

あなたの関数に渡すintに応じて、リストのn番目の要素の要素をクリアします。

void clear(int i){ 
      ((EditText) siteNames.get(i)).setText(""); 
      ((EditText) siteURLS.get(i)).setText(""); 
     } 
関連する問題