[英]how to set spinner value to textView
i am new to programming please forgive for any blunder. 我是编程新手,请原谅任何错误。 i am trying to assign a spinner value which is selected to TextView but every thing goes wrong.
我正在尝试分配一个选定为TextView的微调器值,但是每件事都会出错。
OnCreate OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter=ArrayAdapter.createFromResource(this,R.array.grades, android.R.layout.simple_spinner_item);
grades=(Spinner)findViewById(R.id.spinner);
grades.setAdapter(adapter);
grades.setOnItemSelectedListener(MainActivity.this);
}
onSelectesItem Listner onSelectesItem列表器
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
TextView spinner_text=(TextView) view;
Toast.makeText(this,"your grade is " + spinner_text.getText(),Toast.LENGTH_SHORT).show();
textView.setText(grades.getSelectedItem().toString());//this line should do its work but didnt goes well
}
In onCreate()
method, you did not get the reference of TextView
using findViewById(R.id.textView)
that's why in onItemSelected()
when setting text
to textView
it causes application crash. 在
onCreate()
方法,你没有得到的参考TextView
使用findViewById(R.id.textView)
这就是为什么在onItemSelected()
时设置text
到textView
它会导致应用程序崩溃。
Add below line in onCreate()
在
onCreate()
添加以下行
textView = (TextView) findViewById(R.id.YOUR_TEXTVIEW_ID);
Here is the full working code: 这是完整的工作代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements Spinner.OnItemSelectedListener {
ArrayAdapter adapter;
Spinner grades;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grades = (Spinner)findViewById(R.id.spinner);
textView = (TextView) findViewById(R.id.textView);
adapter = ArrayAdapter.createFromResource(this, R.array.grades, android.R.layout.simple_spinner_item);
grades.setAdapter(adapter);
grades.setOnItemSelectedListener(MainActivity .this);
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
TextView spinner_text = (TextView) view;
Toast.makeText(this, "Your grade is " + spinner_text.getText(), Toast.LENGTH_SHORT).show();
textView.setText(grades.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
OUTPUT: 输出:
Hope this will help~ 希望这会有所帮助〜
You can get the selected spinner values in following ways: 您可以通过以下方式获得选定的微调器值:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedString;
//1: From the Adapter
selectedString = adapter.getItem(position).toString();
//2: From the spinner
selectedString = grades.getSelectedItem().toString();
//3: From the view
TextView spinner_text = (TextView) view;
selectedString = spinner_text.getText().toString();
//All of them works just fine choose any one method
textView.setText(selectedString);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.