如何将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