2017-09-29 3 views
1

朝!Android/Java合理化表示方法

私はAndroidと実際にJavaを学ぶのがとても新しいです。私は、2チーム間の試合のためにラグビーの得点を追跡するアプリを開発しています。それはうまく動作しますが、私が書いたコードの邪魔になります。基本的には、onClickごとに異なるメソッドを呼び出していますが、これはうまくいきますが、それぞれのメソッドは2つの異なる表示メソッドを呼びます。できるだけ効率化を図るためです。

例:

public void try_home(View v) { 
    scoreHome += 5; 
    tryHome++; 
    displayForTeamA(scoreHome); 
    displayTryHome(tryHome); 
} 

そして、私のリセットがさらに悪くなる:

public void reset(View v) { 
    displayForTeamA(scoreHome = 0); 
    displayForTeamB(scoreAway = 0); 
    displayTryHome(tryHome = 0); 
    displayTryAway(tryAway = 0); 
    displayConvertHome(convertHome = 0); 
    displayConvertAway(convertAway = 0); 
    displayFieldHome(fieldHome = 0); 
    displayFieldAway(fieldAway = 0); 
    displayPenHome(penHome = 0); 
    displayPenAway(penAway = 0); 

} 

だからこれは私がやろうとしていますものですが、明らかにfindViewById()はint型だしたいので、動作しません。 ..私は正しい道にいる、これを行う方法はありますか?

public void display(int val, String textView) { 
    String viewID = "R.id." + textView; 
    TextView scoreView = (TextView) findViewById(viewID); 
    scoreView.setText(String.valueOf(val)); 
} 

私はうまくいけば私の質問は簡潔です! は任意のため、事前にありがとうとすべてが

答えて

0
int viewID = context.getResources().getIdentifier(textView, "id", context.getPackageName()) 

トリック(あなたdisplayメソッド内の最初の行を置き換え)を行う必要があります助けます。

+0

awesome!文脈とは何ですか?私はそれのためのvarを持っていない、と私はtextviewがメソッドに渡す文字列のIMだと仮定する?ありがとうございました! –

+0

'display'メソッドはどこにありますか?あなたの 'Activity'の中にあるならば、' context'の代わりに 'this'を使います。もしそれが他の場所なら' Activity'への参照が必要です。参照してください:https://stackoverflow.com/a/15488321/3356270 – kalabalik

+0

ああ、素晴らしい、ええ私は1つのクラス、MainActivity、ありがとう! (いいえ、あなたの答えを+1することはできません申し訳ありません) –

関連する問題