簡體   English   中英

微調器值不會從一個活動傳遞到另一個活動

[英]spinner value not passing from one activity to another

ViewToken.class:

    spinnerGenre = (Spinner) findViewById(R.id.spinnerGenres);
    spinnerGenre1 = (Spinner) findViewById(R.id.spinner);

    docname = spinnerGenre1.getSelectedItem().toString();
    session = spinnerGenre.getSelectedItem().toString();

    next=(Button)findViewById(R.id.button4);
    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent next=new Intent(ViewToken.this,Tokens.class);
            next.putExtra("docname", docname.toString());
            next.putExtra("session", session.toString());
            startActivity(next);
        }
    });

Tokens.class

    Intent i2 = getIntent();
    final String docname = i2.getStringExtra("docname");
    final String session = i2.getStringExtra("session");

ViewToken.class 中的微調器值不會傳遞給 Tokens.class

在 ViewToken.class 中更改此設置

next.putExtra("docname", docname);
next.putExtra("session", session);

您可以在 Tokens.class 中執行以下操作

Bundle extras = getIntent().getExtras();
String docname = extras.getString("docname");
String session = extras.getString("session");

getSelectedItem()的調用應在onClick偵聽器中進行,以便它獲得所選的最新值。

因此, onClick()方法將是:

@Override
public void onClick(View v) {
    docname = spinnerGenre1.getSelectedItem().toString();
    session = spinnerGenre.getSelectedItem().toString();
    Intent next=new Intent(ViewToken.this,Tokens.class);
    next.putExtra("docname", docname);
    next.putExtra("session", session);
    startActivity(next);
}

很可能在選擇任何內容之前調用getSelectedItem()並且因此put()在意圖中的值不正確。

在發送之前從微調器獲取值。

next.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        docname = spinnerGenre1.getSelectedItem().toString();
        session = spinnerGenre.getSelectedItem().toString();

        Intent next=new Intent(ViewToken.this,Tokens.class);
        next.putExtra("docname", docname.toString());
        next.putExtra("session", session.toString());
        startActivity(next);
    }
});
int positionOfSelectedDataFromSpinner;
iv.putExtra("position", positionOfSelectedDataFromSpinner);

創建新方法

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                positionOfSelectedDataFromSpinner= i;
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

在第二個活動中

int positionToShowToSpinner = iv.getIntExtra("position",0);
spinner.setSelection(positionToShowToSpinner);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM