Android 在安卓系统中点击按钮时,如何显示微调器列表?

Android 在安卓系统中点击按钮时,如何显示微调器列表?,android,android-spinner,Android,Android Spinner,嗨,我最近使用了android技术,在我的应用程序中有两个按钮(一个用于显示电影列表,另一个用于显示国家列表) 当我点击第二个按钮时,我想在微调器列表中显示电影列表,如下面的第一个图像所示 但根据我的代码,当我点击按钮时,第一个微调器出现了,我选择了任何一个项目,并将其设置为我的按钮标题,但在选择微调器后仍然可见B/w两个按钮,就像我的第二个屏幕一样,如何删除它 我如何解决这个问题 请帮帮我 我想在点击按钮时直接显示微调器列表 xml:- 活动:- 公共类SpinnerList以编程方式扩展

嗨,我最近使用了android技术,在我的应用程序中有两个按钮(一个用于显示电影列表,另一个用于显示国家列表)

当我点击第二个按钮时,我想在微调器列表中显示电影列表,如下面的第一个图像所示

但根据我的代码,当我点击按钮时,第一个微调器出现了,我选择了任何一个项目,并将其设置为我的按钮标题,但在选择微调器后仍然可见B/w两个按钮,就像我的第二个屏幕一样,如何删除它

我如何解决这个问题

请帮帮我

我想在点击按钮时直接显示微调器列表

xml:-

活动:-
公共类SpinnerList以编程方式扩展AppCompative活动{
字符串[]countriesList={“印度”、“美国”、“英国”
};
String[]moviesList={“狂怒”,“300帝国崛起”,“特洛伊”
};
喷丝器喷丝器1、喷丝器2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.spinnerlist\u运行时);
}
公共作废按钮1操作(视图){
喷丝头1=(喷丝头)findViewById(R.id.spinner1);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,countriesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头1.设置适配器(数据适配器);
喷丝头1.设置可见性(视图.可见);
}
公共作废按钮2操作(视图){
喷丝头2=(喷丝头)findViewById(R.id.spinner2);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,moviesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头2.设置适配器(数据适配器);
喷丝头2.设置可见性(视图.可见);
}
}


---

找到微调器并在单击按钮之前设置adapetr方法

无法评论,因为我没有那么多声誉。。你能更具体地说明你想要实现什么吗

问题是

   if(spinner2.getSelectedItem() == null) 
不为空。。默认情况下,它指定第一个值

因此,请使用此代码

   if(spinner2.getSelectedItem() == "fury") {
        // for checking user havent selected anything
        spinner2.performClick();
    }

  if(spinner1.getSelectedItem() == "india") {
        // for checking user havent selected anything
        spinner1.performClick();
    }
用于设置按钮的标题

    public void Button1Action(View view){
    ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
    dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(dataAdapter1);

    spinner1.setVisibility(View.VISIBLE);
    String s = (String) spinner1.getSelectedItem();
    spinner1.performClick();

    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            button.setText(""+ spinner1.getSelectedItem());
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

}
放置适配器不是问题

用它工作吧

  public void Button1Action(View view){


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(dataAdapter);
        spinner1.setVisibility(View.INVISIBLE);

        spinner1.performClick();
    }

    public void Button2Action(View view){


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, moviesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner2.setAdapter(dataAdapter);
        spinner2.setVisibility(View.INVISIBLE);


        spinner2.performClick();

    }
public void按钮1操作(视图){
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,countriesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头1.设置适配器(数据适配器);
喷丝头1.设置可见性(视图.不可见);
喷丝头1.performClick();
}
公共作废按钮2操作(视图){
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,moviesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头2.设置适配器(数据适配器);
喷丝头2.设置可见性(视图.不可见);
喷丝头2.performClick();
}
查看此屏幕

可以将此设置为屏幕显示


好的,经过长时间的讨论,我终于知道你真正想说什么了。我已经向您提供了完整的源代码,这些源代码经过优化,并从您的源代码中稍加修改

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="10dp"
    android:layout_marginTop="50dp"
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button1Action"
        android:text="CountiesList"/>

    <Spinner

        android:visibility="invisible"
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        />

    <Spinner
        android:visibility="gone"
        android:id="@+id/spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"    
        android:layout_marginTop="5dp"
        />

    <Button
        android:id="@+id/button2"    
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button2Action"
        android:text="MoviesList"/>

</LinearLayout>

您的活动

public class spinnerListProgramatically extends AppCompatActivity {
    Button button1, button2;
    String [] countriesList = {"NONE","india","usa","england"};
    String [] moviesList = {"NONE","fury","300 rise of an empire","troy" };
    Spinner spinner1,spinner2;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
   //Your other setup codes
          spinner1  = (Spinner)findViewById(R.id.spinner1);
        spinner2  = (Spinner)findViewById(R.id.spinner2);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
}

public void Button1Action(View view){
   ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     spinner1.setAdapter(dataAdapter);
     spinner1.setVisibility(View.VISIBLE);
     spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                if(position!=0) {
                    button1.setText(countriesList[position]);
                    spinner1.setVisibility(View.GONE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {    
            }
        });   
    }

  public void Button2Action(View view){   
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, moviesList);
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
     spinner2.setAdapter(dataAdapter);
     spinner2.setVisibility(View.VISIBLE);
     spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                if(position!=0) {
                    button2.setText(moviesList[position]);
                    spinner2.setVisibility(View.GONE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });    
}
公共类SpinnerList以编程方式扩展AppCompative活动{
按钮1,按钮2;
字符串[]countriesList={“无”、“印度”、“美国”、“英国”};
String[]moviesList={“无”、“愤怒”、“帝国崛起300”、“特洛伊”};
喷丝器喷丝器1、喷丝器2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//您的其他设置代码
喷丝头1=(喷丝头)findViewById(R.id.spinner1);
喷丝头2=(喷丝头)findViewById(R.id.spinner2);
button1=(按钮)findViewById(R.id.button1);
button2=(按钮)findViewById(R.id.button2);
}
公共作废按钮1操作(视图){
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,countriesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头1.设置适配器(数据适配器);
喷丝头1.设置可见性(视图.可见);
spinner1.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置!=0){
按钮1.setText(countriesList[位置]);
喷丝头1.设置可见性(视图已消失);
}
}
@凌驾
未选择的公共无效(AdapterView父项){
}
});   
}
公共无效按钮2操作(视图){
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,moviesList);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
喷丝头2.设置适配器(数据适配器);
喷丝头2.设置可见性(视图.可见);
spinner2.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置!=0){
按钮2.setText(电影列表[位置]);
喷丝头2.设置可见性(视图已消失);
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});    
}

为什么不删除
微调器
而只使用
按钮
。同时使用
微调器
按钮
是没有意义的

根据显示的图像,您需要
弹出菜单<
  public void Button1Action(View view){


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(dataAdapter);
        spinner1.setVisibility(View.INVISIBLE);

        spinner1.performClick();
    }

    public void Button2Action(View view){


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, moviesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner2.setAdapter(dataAdapter);
        spinner2.setVisibility(View.INVISIBLE);


        spinner2.performClick();

    }
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="10dp"
    android:layout_marginTop="50dp"
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button1Action"
        android:text="CountiesList"/>

    <Spinner

        android:visibility="invisible"
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        />

    <Spinner
        android:visibility="gone"
        android:id="@+id/spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"    
        android:layout_marginTop="5dp"
        />

    <Button
        android:id="@+id/button2"    
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button2Action"
        android:text="MoviesList"/>

</LinearLayout>
public class spinnerListProgramatically extends AppCompatActivity {
    Button button1, button2;
    String [] countriesList = {"NONE","india","usa","england"};
    String [] moviesList = {"NONE","fury","300 rise of an empire","troy" };
    Spinner spinner1,spinner2;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
   //Your other setup codes
          spinner1  = (Spinner)findViewById(R.id.spinner1);
        spinner2  = (Spinner)findViewById(R.id.spinner2);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
}

public void Button1Action(View view){
   ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     spinner1.setAdapter(dataAdapter);
     spinner1.setVisibility(View.VISIBLE);
     spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                if(position!=0) {
                    button1.setText(countriesList[position]);
                    spinner1.setVisibility(View.GONE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {    
            }
        });   
    }

  public void Button2Action(View view){   
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, moviesList);
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
     spinner2.setAdapter(dataAdapter);
     spinner2.setVisibility(View.VISIBLE);
     spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                if(position!=0) {
                    button2.setText(moviesList[position]);
                    spinner2.setVisibility(View.GONE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });    
}
public void Button2Action(View view){
    showFilterPopup(view);
}

private void showPopup(View v) {
    PopupMenu popup = new PopupMenu(this, v);
    // Inflate the menu from xml
    popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
    // Setup menu item selection
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
            case R.id.troy:
              Toast.makeText(MainActivity.this, "troy", Toast.LENGTH_SHORT).show();
              return true;
            case R.id.rise:
              Toast.makeText(MainActivity.this, "300 Rise of Empire", Toast.LENGTH_SHORT).show();
              return true;
            default:
              return false;
            }
        }
    });
    // Handle dismissal with: popup.setOnDismissListener(...);
    // Show the menu
    popup.show();
  }
Spinner spi_type = findViewById(R.id.spi_type);
Button button = findViewById(R.id.button);
imgVIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // performClick() this method show Spinner-List item without tap on spinner
                spi_type.performClick();
            }
        });