根据在另一个微调器中选择的微调器中的项目显示数据?

时间:2016-06-04 06:20:12

标签: android spinner

我已经制作了一个程序来选择一个州并根据所选择的状态显示其中的城市但是城市没有显示请帮助

这是MainActivity

public class MainActivity extends AppCompatActivity {
Spinner state, city;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    state= (Spinner) findViewById(R.id.spinner);
    city= (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapter= ArrayAdapter.createFromResource(this,R.array.states,android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    state.setAdapter(adapter);
    state.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String state= parent.getItemAtPosition(position).toString();
            Toast.makeText(MainActivity.this, "State = "+state, Toast.LENGTH_SHORT).show();
            city= (Spinner) findViewById(R.id.spinner2);
            if (state=="Rajasthan"){
                ArrayAdapter<CharSequence> adapter1= ArrayAdapter.createFromResource(getApplicationContext(),R.array.cities_rajasthan,android.R.layout.simple_spinner_item);
                adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                city.setAdapter(adapter1);

            }
            else if (state=="Madhya Pradesh"){
                ArrayAdapter<CharSequence> adapter2= ArrayAdapter.createFromResource(getApplicationContext(),R.array.cities_madhyapradesh,android.R.layout.simple_spinner_item);
                adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                city.setAdapter(adapter2);
            }
            else if (state=="Uttar Pradesh"){
                ArrayAdapter<CharSequence> adapter3= ArrayAdapter.createFromResource(getApplicationContext(),R.array.cities_uttarpradesh,android.R.layout.simple_spinner_item);
                adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                city.setAdapter(adapter3);
            }
            else if (state=="Maharashtra"){
                ArrayAdapter<CharSequence> adapter4= ArrayAdapter.createFromResource(getApplicationContext(),R.array.cities_maharashtra,android.R.layout.simple_spinner_item);
                adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                city.setAdapter(adapter4);
            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            Toast.makeText(MainActivity.this, "Nothing is Selected ", Toast.LENGTH_SHORT).show();
        }
    });
}}

这是String.xml文件

<resources>
<string name="app_name">Spinners2</string>
<string-array name="states">
    <item>Rajasthan</item>
    <item>Madhya Pradesh</item>
    <item>Maharashtra</item>
    <item>Uttar Pradesh</item>
</string-array>
<string-array name="cities_rajasthan">
    <item>Bikaner</item>
    <item>Jaipur</item>
    <item>Jodhpur</item>
    <item>Jaisalmer</item>
</string-array>
<string-array name="cities_madhyapradesh">
    <item>Indore</item>
    <item>Bhopal</item>
    <item>Jabalpur</item>
    <item>Ujjain</item>
</string-array>
<string-array name="cities_maharashtra">
    <item>Pune</item>
    <item>Mumbai</item>
    <item>Nagpur</item>
</string-array>
<string-array name="cities_uttarpradesh">
    <item>Lucknow</item>
    <item>Agra</item>
    <item>Kanpur</item>
</string-array>
</resources>

这是activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.saranshagarwal.spinners2.MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="State"
    android:id="@+id/textView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="60dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="City"
    android:id="@+id/textView2"
    android:layout_below="@+id/spinner"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner2"
     android:layout_below="@+id/textView2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您的代码存在的问题是您将两个字符串与==符号进行比较,而它们是不同的对象。

而不是==使用String.equals(object)

更改此内容:

if (state=="Rajasthan")

<强> 到:

if(state.equals("Rajasthan")){
 //Set adapter
}

如果您使用switch个案例而非if-else个陈述,那将会更好更容易。

答案 1 :(得分:0)

试试这个,

state.setOnItemSelectedListener(
  new OnItemSelectedListener() {
      public void onItemSelected(
            AdapterView<?> parent, View view, int position, long id) {
                String selected_item = state.getSelectedItem().toString();

                if(selected_item.equals("Rajastan"))
                {
                    //do your operation here
                }
                elseif(..)
                {
                ..
                }
                //etc

        }

            public void onNothingSelected(AdapterView<?> parent) {
                 Toast.makeText(MainActivity.this, "Nothing is Selected ", Toast.LENGTH_SHORT).show();
            }
});

使用 String.equals()

这可能会对你有所帮助。

快乐编码!!!!