0

私はアンドロイド開発の初心者であり、文字列および配列リソースから値を設定する効率的な方法があるかどうかを知りたいです。ユーザーが非常に長いリストビューから値を選択するときにアクセスする必要がある非常に大量の文字列および arrya リソースがあります。たとえば、リストビューににきび、あざなどが含まれている場合、次のように値を設定できます。

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    switch(arg0.getId()){
    case R.id.ailmentslistview:

        String value = ((TextView) arg1).getText();

        remedyDescription.setText(R.string.value_description);
        remedyCause.setText(R.string.value_cause);
        remedyHerbs.setText(R.string.value_herbs);
        remedyFoods.setText(R.string.value_foods);
        remedyListSupplements = res.getStringArray(R.array.value_supplements);
        remedyListDosage = res.getStringArray(R.array.value_dosage);
        remedyListComments = res.getStringArray(R.array.value_comment);

        break
        }
     } 

それ以外の:

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    switch(arg0.getId()){
    case R.id.ailmentslistview:

            if(String value = ((TextView) arg1).getText()==Acne){

        remedyDescription.setText(R.string.acne_description);
        remedyCause.setText(R.string.acne_cause);
        remedyHerbs.setText(R.string.acne_herbs);
        remedyFoods.setText(R.string.acne_foods);
        remedyListDosage = res.getStringArray(R.array.acne_dosage);
        remedyListComments = res.getStringArray(R.array.acne_comment);

            }else if(String value = ((TextView) arg1).getText()==Bruise) {

        remedyDescription.setText(R.string.bruise_description);
        remedyCause.setText(R.string.bruise_cause);
        remedyHerbs.setText(R.string.bruise_herbs);
        remedyFoods.setText(R.string.bruise_foods);
        remedyListDosage = res.getStringArray(R.array.bruise_dosage);
        remedyListComments = res.getStringArray(R.array.bruise_comment);

            }


                break;
            }
  }

どんな洞察も大歓迎です。

4

3 に答える 3

1

String myString = getApplicationContext().getResources().getString(R.string.myString); 文字列 [] myArray = getApplicationContext().getResources().getStringArray(R.array.myArray);

于 2014-04-30T10:50:02.813 に答える
1

動的リソースの読み込みには、getIdentifier (String name, String defType, String defPackage)を使用できます。

context.getResources().getIdentifier(name, "string", context.getApplicationInfo().packageName);

あなたの場合、次の方法で文字列名を作成できます。

文字列値 = ((TextView) arg1).getText();

名前 = value.toLowerCase() + "_description";

など..

于 2013-05-26T18:42:52.083 に答える