【问题标题】:Update my view after select a value in a spinner在微调器中选择一个值后更新我的视图
【发布时间】:2017-02-02 01:34:24
【问题描述】:

我是 Android 的初学者,我想在从微调器中选择一个值后更新我的主要视图。

public class MainActivity extends Activity {
        ArrayAdapter<String> adapter = null;
        Spinner spinnerMois, spinnerAnnee;
        DateAdapter dataAdapterMois , dataAdapterYear;spinnerMois = (Spinner) findViewById(R.id.spinnerMois);
        dataAdapterMois = new DateAdapter(this,
        android.R.layout.simple_spinner_item, loadMonth());
        dataAdapterMois.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerMois.setAdapter(dataAdapterMois);

        spinnerAnnee = (Spinner) findViewById(R.id.spinnerAnnee);
        dataAdapterYear = new DateAdapter(this, android.R.layout.simple_spinner_item, loadYear());
    dataAdapterYear.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerAnnee.setAdapter(dataAdapterYear);
    values = depenseBDD.getAllDepense();
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
    //Here the values should be update by my spinners

}

我的“Depense”是一个对象:

public class Depense {
int id;
String dateDepense;
float montant;
String categ;}

我想,要求月份和年份的 2spinners 选择更新我的主要和显示只有“依赖”的月份和年份......老实说,我真的不知道该怎么做.你有什么建议吗?

【问题讨论】:

    标签: java android spinner


    【解决方案1】:

    基本上,它很容易。你可以像这样使用“onItemSelect”/how-can-i-use-onitemselected-in-android

    它看起来像这样:

    public class spinner extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
    
    Spinner year;
    TextView dateView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner);
    
        dateView = (TextView) findViewById(R.id.date);
    
        year = (Spinner) findViewById(R.id.anneeSpinner);
        year.setOnItemSelectedListener(this);
    }
    
    
    
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        dateView.setText(adapterView.getItemAtPosition(i).toString());
    }
    
    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {
    
    }
    }
    

    对于布局:

        <Spinner
        android:id="@+id/anneeSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/year"/>
    
    <TextView
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="helloo"/>
    

    只需为该月添加另一个微调器和文本视图。然后你可以将值添加到 main

    【讨论】:

    • 好的谢谢!我现在就试试这个! (我不能为你的帖子 +1 ^^)
    • bienvenu。我明白这感受。我刚刚被授予该特权
    【解决方案2】:

    在 Spinner 上添加 OnItemClickListener。

    spinnerMois.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //write your code here to update view
            }
        });
    

    【讨论】:

    • 好的谢谢!你的答案和你之前的答案有区别吗?我的意思是,一个比另一个好还是两者都好?
    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多