Java 动态使用名称与其他数组中的值匹配的数组

Java 动态使用名称与其他数组中的值匹配的数组,java,android,arrays,xml,string,Java,Android,Arrays,Xml,String,我会尽我最大的努力来解释我想要完成什么; 我觉得如果我能更好地解释,我就不用问了 要从微调器中选择项目,请单击4个按钮之一,将微调器值数组值发送到下一个活动 药物中的值将有自己的字符串数组 比如说 在药物治疗中,依那普利具有一定的价值 有一个字符串数组ENALAPRIL有4个值 HowString[0] 什么字符串 当庭[2] NotString[3] 在Activity2中,只有两个文本视图框 顶部文本视图用于显示从微调器中选择的药物名称 我可以毫无问题地做到这一点 底部的文本视图用于显示方式

我会尽我最大的努力来解释我想要完成什么; 我觉得如果我能更好地解释,我就不用问了

要从微调器中选择项目,请单击4个按钮之一,将微调器值数组值发送到下一个活动

药物中的值将有自己的字符串数组

比如说

在药物治疗中,依那普利具有一定的价值

有一个字符串数组ENALAPRIL有4个值

HowString[0]

什么字符串

当庭[2]

NotString[3]

在Activity2中,只有两个文本视图框

顶部文本视图用于显示从微调器中选择的药物名称

我可以毫无问题地做到这一点

底部的文本视图用于显示方式、内容、时间或非字符串-取决于按下哪个按钮进入Activity2

我需要底部的TextView动态使用带意图传递的StringArray值:

选定的数组值TextView1需要动态等于TextView2中使用的数组值的名称

我正在为语境和如何表达我的需要而挣扎,所以我道歉

我希望我把非常非常简单的事情复杂化了

活动1布局:

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/rxBox"
    android:prompt="@string/rxprompt"
    android:entries="@array/Medications"
    android:focusable="true"
    android:clickable="true"
    android:visibility="visible"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:textAlignment="center"
    android:spinnerMode="dialog"
    android:layout_centerHorizontal="true"
    android:background="@drawable/abc_search_dropdown_dark"
    android:popupBackground="@drawable/abc_ab_solid_light_holo"
    android:layout_below="@+id/helprx" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/rxstudyinfo"
    android:id="@+id/helprx"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"

    android:textStyle="bold"
    android:paddingStart="10dp"
    android:visibility="visible"
    android:textSize="20dp"
    android:lines="5" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentEnd="true"
    android:paddingTop="50dp"
    android:divider="@drawable/abc_ab_share_pack_holo_dark"
    android:visibility="visible"
    android:layout_below="@+id/rxBox">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/dosing"
        android:id="@+id/doseButton"
        android:layout_gravity="center_horizontal"
        android:clickable="true"
        android:enabled="true"
        android:onClick="howRx" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/what"
        android:id="@+id/whatButton"
        android:clickable="true"
        android:enabled="true"
        android:onClick="whatRX" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/whenButton"
        android:layout_gravity="center_horizontal"
        android:text="@string/when"
        android:clickable="true"
        android:enabled="true"
        android:onClick="whenRX" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/not"
        android:id="@+id/notButton"
        android:clickable="true"
        android:enabled="true"
        android:onClick="notRX" />

</LinearLayout>
代码:Activity2 XML:药物 依那普利 卡托普利 所有药物的格式都相同,因此数组索引将与每个按钮相关


谢谢大家!

根据我的阅读和理解,您的问题是单击一个按钮,并相应地显示下一个活动的答案,同时显示按下的按钮和另一个活动的微调器选择

因此,首先,从我的观点来看,你最好有这样一节课:

public class Medication { 
      String name; //name of you medication
      ArrayList<String> answers; //answers which you initialize by the order you want  

      public Medication (String name, ArrayList<String> answers) { 
            this.name = name;
            this.answers = answers;
      }

      public boolean isThisMedication(String name){
            if (this.name.equals(name))
               return true;
            return false;
      }

      public String getAnswer(int position) {
            return answers.get(position);
      }
}
您应该初始化此类对象的列表,如Activity 2上的ArrayList

然后,无论何时单击某个按钮,您都必须在捆绑包中发送该特定按钮文本中的字符串或从0到3的数字。0是您的第一个按钮,3是您的最后一个数字。在按钮的OnClickListener上,您应该可以毫无问题地执行此操作

就是这样!一切都准备好了

另外,如果您真的不想使用我提到的类,您应该看到关于如何使用StringArray的链接


希望这有帮助

谢谢你的建议,Soana!我将在一两天内在我的程序中尝试这一点并提供反馈。不幸的是,我无法解决我的问题。请使用您的建议并修改我的一些资源,我能够让它按照我的意愿工作。非常感谢。
public class studyRX extends ActionBarActivity {




public void howRx(View view){


    Spinner medChoice = (Spinner) findViewById(R.id.rxBox);
    Intent howRxIntent = new Intent(getApplicationContext(),rxViewer.class);
    Bundle b = new Bundle();
    b.putString("medname",medChoice.getSelectedItem().toString());



    howRxIntent.putExtras(b);

    startActivity(howRxIntent);

    //array index 0
}
public class rxViewer extends ActionBarActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rx_viewer);

    Bundle b = this.getIntent().getExtras();
    Resources r = getResources();
    String medname = b.getString("medname");


    ((TextView)findViewById(R.id.rxName)).setText(medname);

    // myString = getResources().getIdentifier(medname,"string",this.getPackageName());
    //((TextView)findViewById(R.id.infoRx)).setText(bang);
    //TextView t = (TextView)findViewById(R.id.infoRx);
    //int maybe = getResources().getIdentifier(bang,"arrays",this.getPackageName());

    Intent intentObject = getIntent();

}
<string-array name="Medications">
    <item>Enalapril</item>
    <item>Captopril</item>
    <item>Lisinopril</item>
    <item>Ramipril</item>
    <item>Adenosine</item>
    <item>Amiodarone</item>
</string-array>
<string-array name="Enalapril">
    <item> String from HOW Button  </item>
    <item> String from WHAT Button </item>
    <item> String from WHEN Button </item>
    <item> String from NOT  Button </item>
 </string-array>
<string-array name="Captopril">
    <item> String from HOW Button  </item>
    <item> String from WHAT Button </item>
    <item> String from WHEN Button </item>
    <item> String from NOT  Button </item>
</string-array>
public class Medication { 
      String name; //name of you medication
      ArrayList<String> answers; //answers which you initialize by the order you want  

      public Medication (String name, ArrayList<String> answers) { 
            this.name = name;
            this.answers = answers;
      }

      public boolean isThisMedication(String name){
            if (this.name.equals(name))
               return true;
            return false;
      }

      public String getAnswer(int position) {
            return answers.get(position);
      }
}