【问题标题】:Android different selection spinner show different textviewAndroid不同的选择微调器显示不同的textview
【发布时间】:2014-11-27 11:30:32
【问题描述】:

我希望我的微调器针对在 Android Studio 中的微调器上选择的不同选项显示不同的文本视图。它是一个药物相互作用应用程序,所以当用户从微调器中选择一种药物时,我希望每个药物都出现不同的相互作用。 任何建议都会很有用。

下面是我的代码,

    public class MyActivity extends Activity implements OnItemSelectedListener {
    Spinner spinner;
    TextView showmed;
    private String[] state = {"Adalimumab",
            "Etanercept",
            "Tacrolimus",
            "Mycophenolic Acid",
            "Bicalutamide",
            "Darbepoetin alfa",
            "Ciclosporin",
            "Interferon beta-1a",
            "Triptorelin"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        System.out.println(state.length);
        showmed = (TextView) findViewById(R.id.showgender);
        spinner = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, state);
        adapter_state
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter_state);
        spinner.setOnItemSelectedListener(this);

     }

    public void onItemSelected(AdapterView<?> parent, View view, int position,
                               long id) {
        spinner.setSelection(position);
        String selState = (String) spinner.getSelectedItem();
        showmed.setText("Your drug:" + selState);
     }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

【问题讨论】:

  • 您想更新您的列表还是为每种药物创建一个弹出子菜单?
  • 真的不是子菜单。我的微调器有一个包含 6 种药物的下拉列表,我希望每次有人从下拉列表中选择不同的药物时都会更改文本视图,因为每种药物都有不同的相互作用

标签: android android-studio textview android-spinner


【解决方案1】:

我相信这是您可能一直在寻找的方法:

public void onItemSelected(AdapterView<?> parent, View view, int position,
                           long id) {

               switch(position)
{

               case 0:
               showmed.setText("Your drug number 0 on the list");
                break;

               case 1:
               showmed.setText("Your drug number 1 on the list");
                break;

}


 }

你也应该更新到final TextView showmed;

【讨论】:

    【解决方案2】:

    您可以在微调器上设置监听器:

    spinner.setOnItemSelectedListener(this);
    

    实现的方法如下所示:

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
    {
        if(position == 0)
            textView.setVisibility(View.VISIBLE);
        //do something similar for every position
    }
    

    根据传递给该方法的位置,您可以将文本视图的可见性更改为消失或可见。

    【讨论】:

    • 你可以使用 textView.setText("") 代替 setVisibility
    • 我在上面的答案中发布了我的代码,你认为我还能使用这个代码吗?
    【解决方案3】:

    查看药品名称并根据药品名称设置

    adapter_state.setDropDownViewResource(R.layout.custom_text_view)
    

    这里的 R.layout.custom_text_view 是您将根据自己的喜好制作的 XML

    【讨论】:

      【解决方案4】:

      如果有帮助,这是我的代码。我还能用这个代码吗?

      public class MyActivity extends Activity implements OnItemSelectedListener {
      Spinner spinner;
      TextView showmed;
      private String[] state = {"Adalimumab",
              "Etanercept",
              "Tacrolimus",
              "Mycophenolic Acid",
              "Bicalutamide",
              "Darbepoetin alfa",
              "Ciclosporin",
              "Interferon beta-1a",
              "Triptorelin"};
      
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_my);
          System.out.println(state.length);
          showmed = (TextView) findViewById(R.id.showgender);
          spinner = (Spinner) findViewById(R.id.spinner);
          ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
                  android.R.layout.simple_spinner_item, state);
          adapter_state
                  .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spinner.setAdapter(adapter_state);
          spinner.setOnItemSelectedListener(this);
      
       }
      
      public void onItemSelected(AdapterView<?> parent, View view, int position,
                                 long id) {
          spinner.setSelection(position);
          String selState = (String) spinner.getSelectedItem();
          showmed.setText("Your drug:" + selState);
       }
      
      @Override
      public void onNothingSelected(AdapterView<?> arg0) {
          // TODO Auto-generated method stub
      
      }
      

      【讨论】:

      • 我在下面的答案中发布了我的代码,你认为我还能使用这个代码吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多