簡體   English   中英

如何將int變量傳遞給另一個活動?

[英]How to pass int variable to another activity?

我試圖將具有意圖的int值傳遞給另一個活動,但我總是得到0。我檢查了它不是0。 我正在嘗試從int變量brojPoena中傳遞值。 我嘗試了這個:

Intent i = new Intent(Game.this, Popup_opis.class);
i.putExtra("brojPoenaPrimljeno", brojPoena);

在我的接收活動中:

Intent mIntent = getIntent(); 
        if(mIntent !=null) {
           int brojPoena = mIntent.getIntExtra("brojPoenaPrimljeno", 0);
        }
tvBrojPoena.setText("You won " + brojPoenaPrimljeno + " points");

我也試過這個:

Intent i = new Intent(getApplicationContext(), Popup_opis.class);
i.putExtra("brojPoenaPrimljeno", brojPoena);

在我的接收活動中:

Bundle extrasPoeni = getIntent().getExtras(); 
        if(extrasPoeni !=null) {
           brojPoenaPrimljeno = extras.getInt("brojPoena");
        }

我的接收活動:

public class Popup_opis extends Activity implements OnClickListener{

    TextView tvOpis,tvNaslov,tvBrojPoena;
    String poslatOpis, primljenOpis;
    int brojPoenaPrimljeno;
    Button OK;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.popup_opis);

        Bundle extras = getIntent().getExtras(); 
        if(extras !=null) {
           primljenOpis = extras.getString("poslatOpis");
        }

        Bundle extrasPoeni = getIntent().getExtras(); 
        if(extrasPoeni !=null) {
           brojPoenaPrimljeno = extras.getInt("brojPoena");
        }

        initVariables();

    }

    private void initVariables() {


        Typeface tv = Typeface.createFromAsset(getAssets(), "ARIALN.TTF");
        OK = (Button) findViewById(R.id.bOK);
        tvOpis = (TextView) findViewById(R.id.tvOpis);
        tvBrojPoena = (TextView) findViewById(R.id.tvBrojPoena);
        tvBrojPoena.setTypeface(tv);
        tvNaslov = (TextView) findViewById(R.id.tvNaslov);
        tvNaslov.setTypeface(tv);
        tvOpis.setTypeface(tv);
        tvOpis.setText(primljenOpis);
        tvBrojPoena.setText("Osvojili ste " + brojPoenaPrimljeno + " poena u ovoj igri.");



    OK.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            finish();

        }
    });
    }

    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

}

這個變量brojPoenaPrimljeno在哪里? 你有這個

int brojPoena = mIntent.getIntExtra("brojPoenaPrimljeno", 0);

但是在調用setText()時使用了不同的變量名

您正在嘗試使用value而不是key來接收值。 創建Intent

i.putExtra("brojPoenaPrimljeno", brojPoena);  // brojPoenaPrimljeno is the key be trying to use to 

嘗試

 brojPoenaPrimljeno = getIntent().getIntExtra("brojPoenaPrimljeno", 0);

此外,這是次要問題,不是您的問題,但是效率低下並可能導致問題。 您將在兩個不同的地方獲得“意圖”。 這里

Bundle extras = getIntent().getExtras();

和這里

Bundle extrasPoeni = getIntent().getExtras(); 

處理不同Activities意圖

如果有幫助,如果我有一個Activity從多個地方接收Intents ,我將使用一個String extraString extra來告訴接收Activity來源。 例如:

Intent intent = new Intent(SendingActivity.this,ReceivingActivity.class); intent.putExtra(“ source”,“ activityName”); //這將用於了解意圖來自何處

//receiving activity
Intent recIntent = getIntent();
if (recIntent.getStringExtra("source") != null)
{
     String source = recIntent.getStringExtra("source");
    if (source.equals("activityName"))
    {
         // do stuff
    }
    if (source.equals("differentActivityName"))
    {
         // do other stuff
    }
}

暫無
暫無

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

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