什么是实现键值对的微调在Android上的正确方法 [英] What's the correct way to implement key-value pair in Spinner in android
本文介绍了什么是实现键值对的微调在Android上的正确方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是实现键值对的微调在Android的正确方法是什么?
包com.mypackage
进口android.app.Activity;
进口android.os.Bundle;
进口android.view.View;
进口android.widget.Spinner;
进口android.widget.ArrayAdapter;
进口android.widget.AdapterView;
进口android.widget.TextView;
公共类SpinnerAndAdapter扩展活动
{
TextView的valueTextView;
/ **第一次创建活动时调用。 * /
@覆盖
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
valueTextView =(TextView中)findViewById(R.id.selected);
微调S =(微调)findViewById(R.id.spinner);
最终迈德特项[] =新迈德特[3];
项目[0] =新迈德特(键1,值1);
项[1] =新迈德特(KEY2,值2);
项[2] =新迈德特(KEY3,值3);
ArrayAdapter<迈德特>适配器=
新的ArrayAdapter<迈德特>(
本,
android.R.layout.simple_spinner_item,
项);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(适配器);
s.setOnItemSelectedListener(
新AdapterView.OnItemSelectedListener(){
公共无效onItemSelected(
适配器视图<>父母,
查看查看,
INT位置,
长ID){
迈德特D =项目[位置]
valueTextView.setText(d.getValue());
}
公共无效onNothingSelected(适配器视图<>母公司){
}
}
);
}
类迈德特{
公共迈德特(字符串spinnerText,字符串值){
this.spinnerText = spinnerText;
THIS.VALUE =价值;
}
公共字符串getSpinnerText(){
返回spinnerText;
}
公共字符串的getValue(){
返回值;
}
公共字符串的toString(){
返回spinnerText;
}
字符串spinnerText;
字符串值;
}
}
解决方案
这是一种方式。 我用它了不少,虽然我用我自己的适配器(从BaseAdpater继承)。 另一种方法是b类似上面有一个索引(0,1,2等)mappd的值,当你得到一个项目得到它的指数,所以你可以检索它的值来回MTHE地图。 我喜欢这种选择更少......
Is this the correct way to implement key-value pair for a Spinner in Android?
package com.mypackage
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Spinner;
import android.widget.ArrayAdapter;
import android.widget.AdapterView;
import android.widget.TextView;
public class SpinnerAndAdapter extends Activity
{
TextView valueTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
valueTextView = (TextView)findViewById( R.id.selected );
Spinner s = (Spinner)findViewById(R.id.spinner);
final MyData items[] = new MyData[3];
items[0] = new MyData( "key1","value1" );
items[1] = new MyData( "key2","value2" );
items[2] = new MyData( "key3","value3" );
ArrayAdapter<MyData> adapter =
new ArrayAdapter<MyData>(
this,
android.R.layout.simple_spinner_item,
items );
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
s.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent,
View view,
int position,
long id) {
MyData d = items[position];
valueTextView.setText( d.getValue() );
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
}
class MyData {
public MyData( String spinnerText, String value ) {
this.spinnerText = spinnerText;
this.value = value;
}
public String getSpinnerText() {
return spinnerText;
}
public String getValue() {
return value;
}
public String toString() {
return spinnerText;
}
String spinnerText;
String value;
}
}
解决方案
this is one way. i use it quite a lot though i use my own adapter (inheriting from BaseAdpater). Another way would b like the above to have an index (0,1,2 etc ) mappd to a value and when you get an item get it's index a well so you can retrieve it's value fro mthe map. I like that option less...
这篇关于什么是实现键值对的微调在Android上的正确方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文