如何将int变量传递给另一个活动?

我试图传递一个int值与意图到另一个活动,但我总是得到0.而且它不是0,我检查。我试图从int变量brojPoena中传递值。我尝试这样做:如何将int变量传递给另一个活动?

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);

,并在我的recieving活动:

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 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

}

}

以上是 如何将int变量传递给另一个活动? 的全部内容, 来源链接: utcz.com/qa/260130.html

回到顶部