Android 在微调器中动态更改文本值

Android 在微调器中动态更改文本值,android,spinner,Android,Spinner,我想在我的应用程序中使用带有静态选项列表的微调器,例如: 速度 海拔高度 纬度 经度 因此,当单击微调器时,会出现下拉视图,如果我选择“高度”,我希望显示高度值,然后将该值更新到微调器本身(我有GPS服务来获取位置数据) 为了实现这一点,我创建了自己的适配器并覆盖getView()和getDropDownView(): 我还没有实现我的gps服务。我只是想解决我的微调器问题。尝试更换微调器中的适配器。OnItemSelected.我们可以看看您的活动和布局文件的onCreate方法中有什么吗

我想在我的应用程序中使用带有静态选项列表的微调器,例如:

  • 速度
  • 海拔高度
  • 纬度
  • 经度
因此,当单击微调器时,会出现下拉视图,如果我选择“高度”,我希望显示高度值,然后将该值更新到微调器本身(我有GPS服务来获取位置数据)

为了实现这一点,我创建了自己的适配器并覆盖
getView()
getDropDownView()


我还没有实现我的gps服务。我只是想解决我的微调器问题。

尝试更换微调器中的适配器。OnItemSelected.

我们可以看看您的活动和布局文件的onCreate方法中有什么吗?很抱歉,评论太晚了!我尝试了这个,它在一个简单的项目上工作,但之后我遇到了另一个问题,所以我决定不使用微调器。有关详细信息,请参阅。
package com.example.spinnertest;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MySpinnerAdapter extends BaseAdapter {
    private Context _context;
    private ArrayList<String> _values;

    public MySpinnerAdapter(Context context, ArrayList<String> values) {
        this._context = context;
        this._values = values;
    }

    @Override
    public int getCount() {
        return _values.size();
    }

    @Override
    public Object getItem(int position) {
        return _values.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater layout = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layout.inflate(R.layout.item_spinner_value, null);
        }
        TextView valueTv = (TextView) convertView.findViewById(R.id.item_spinner_value_tv);
        return convertView;
    }

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater layout = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layout.inflate(R.layout.item_spinner_list, null);
        }
        ImageView imView = (ImageView) convertView.findViewById(R.id.item_spinner_list_iv);
        TextView textView = (TextView) convertView.findViewById(R.id.item_spinner_list_tv);
        textView.setText(_values.get(position));
        return convertView;
    }   
}
package com.example.spinnertest;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Spinner;

public class MainActivity extends Activity {

    private ArrayList<String> maListe = new ArrayList<String>(){{add("Altitude");add("Speed");add("Longitude");add("Latitude");}};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spi = (MySpinner)findViewById(R.id.spinner1);
        MySpinnerAdapter spiAd = new MySpinnerAdapter(getApplicationContext(), maListe);
        spi.setAdapter(spiAd);
    }
}