I want to set the spinner to show the name country even if any other list is selected. I have used a textview which displays the selected item of the Spinner List. As I used the setselection method to set the spinner title to Country the EditText also eventually changes. I went through various topic answered regarding this but couldn't find suitable response
I am attaching my code below
MainActivity.java
package com.example.spinner;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity {
Spinner sp;
TextView t;
String[] country;
int sp_position;
String selected;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String myString = "Country";
sp = (Spinner)findViewById(R.id.spinner1);
t = (TextView)findViewById(R.id.textView1);
country = getResources().getStringArray(R.array.spinner);
ArrayAdapter<String> ad = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,country);
sp_position = ad.getPosition(myString);
sp.setAdapter(ad);
ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
selected = sp.getSelectedItem().toString();
System.out.println(selected);
setid();
}
private void setid() {
sp.setSelection(sp_position);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
t.setText(selected);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
My XML file
<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=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="48dp"
android:layout_marginTop="69dp"
android:maxLines="4"
android:hint="Address" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="72dp"
/>
</RelativeLayout>
My STRINGS.XML
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Spinner</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="spinner">
<item>Country</item>
<item>India</item>
<item>Russia</item>
<item>USA</item>
<item>France</item>
<item>United Kingdom</item>
</string-array>
<string name ="Country">Country</string>
</resources>
My Requirement is whatever is selected in the spinner the Textview should display the selected Item but The spinner should always show the first item or in my case Country
In
onItemSelected
method add this codesp.setSelection(0);
You only need 3 lines of code for this:
(1) Declare a global variable that is used to save and load the spinner item ID. By global, I mean declaring it right after "public class MainActivity extends Activity {".
(2) Then, add the following code AFTER the user has made his/her choice. One good location would be a button that appears together with your spinner.
(3) Finally, add the following code right after "mySpinner.setAdapter(adapter);" to load the last selected item.
You're most welcomed.
Use
android:prompt="@string/select"
in spinner....Use this code
declaration
spinner code
Try this: