❶ android intent傳遞參數問題
//Bundle bundle = new Bundle(); //這句是多餘的
Bundle bundle = this.getIntent().getExtras();
categorySelected = bundle.getString("category");
pcode = bundle.getString("pcode");
上面說的問題與你提的問題關系不大,感覺你的問題不太可能啊,請檢查傳入的時候:
bundle.putString("category", category);
請檢查傳入的時候category本來就是空指針。
❷ android編程中用intent傳值能傳一個變數到另一個activity嗎
Intent
intent=
new
Intent(當前activity.this,
要跳轉到的activity.class);
Bundle
bundle=new
Bundle();
bundle.putInt("a",
"值");//這你看你要傳什麼值,int--putInt("key","值");
intent.putExtras(bundle);//把這個值放到intent裡面
startActivity(intent);//跳轉
------------------------------------------
這里已經跳轉到另一個activity了
在oncreat里寫這樣的代碼
Intent
intent=new
Intent();
Bundle
b=new
bundle();
//比如這個是String或者int型的:
String
str=b.getString("key");
int
a=b.getInt("key");
----------------------------------------
這樣就完全ok了,好好加油吧,這條路還很長呢
❸ android 中如何使用intent通過傳遞變數傳遞數據
Intent intent =new Intent(AActivity.this,BActivity.class);
intent.putExtra("num1", num1) ;
intent.putExtra("num2", num2) ;
startActivity(intent) ;
另一個接受的是Activity是 :
String num1 =this.getIntent().getStringExtra("num1") ;
String num2 =this.getIntent().getStringExtra("num2") ;
基本就這樣
❹ android intent 傳數據問題,能否確定傳入的數據來自哪個activity
完全可以,只需要往intent裡面添加一個標識數據即可
//兩個activity
java">//第一個activity
{
privateButtonbtn;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
Intentintent=newIntent(OneActivity.this,EditActivity.class);
intent.putExtra("from",1);
startActivity(intent);
}
});
}
}
//第二個activity
{
privateButtonbtn;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
Intentintent=newIntent(OneActivity.this,EditActivity.class);
intent.putExtra("from",2);
startActivity(intent);
}
});
}
}
編輯activity,判斷intent傳進來的from數據,為1即為OneActivity,2為TwoActivity
{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intentintent=getIntent();
intfrom=intent.getIntExtra("from",0);
switch(from){
case1:
//OneActivity
break;
case2:
//TwoActivity
break;
//case.......
}
}
}
❺ android開發intent怎麼傳遞集合
1、Intent(意圖)主要是解決Android應用的各項組件之間的通訊。
2、為了實現傳遞數據這個目的需要以下步驟
3、Activity1需要構造一個 Intent,這個Intent用於告訴系統,我們要做「查看」動作
intent可調用putExtra來存放想要傳遞的數據
4、然後調用setClass,設置Activity1和欲調用的組件Activity2
5、最後調用startActivity將構造的Intent傳入,系統會根據此Intent中的描述,到Activity1中找到滿足此Intent要求的Activity,系統會調用找到的 Activity2最終傳入Intent在Activity2中可使用getIntent來獲取傳遞的Intent,並通過獲取數據的方法來獲取數據代碼示例:
Intent intent = new Intent(); // Activity1
intent.putExtra("one", num1);
intent.putExtra("two", num2);
intent.setClass(FirstActivity.this, SecondActivity.class);
startActivity(intent); Intent intent = getIntent(); //Activity2
String num1 = intent.getStringExtra("one");
String num2 = intent.getStringExtra("two");
int ret = Integer.parseInt(num1) + Integer.parseInt(num2);
result.setText(ret+"");
注意:在使用intent的時候可以使用bundle傳遞復制的數據類型。
❻ Android Intent 如何接收到指定的Intent傳遞過來的值呢
首先,盡量不要用try{}catch去捕捉能用判斷規避的異常,那樣會影響效率,每次出現異常,虛擬機要抓錯誤調用堆棧。所以,最好的方式是通過判斷去規避。
按你的思路,可以先判斷getIntent.getExtras()是否為null。
Intent
_getIntent
=
this.getIntent();
if(
_getIntent.getExtras()
!=
null){
Log.i("YuryLog","理論上只有點了確認鍵才執行");
receiveName
=
_getIntent.getExtras().getString("sendName");
receiveEatSomething
=
_getIntent.getExtras().getString("sendeatSomething");
receiveCopies
=
_getIntent.getExtras().getString("sendcopies");
......
要指出的是,上述代碼,最好使用getXXXExtra這類方法,它不會出現空指針(除了少數幾個,比方說getStringExtra)。
需要設定默認值的,在沒有值時它會返回默認值;沒有設置默認值的,在沒有值時會返回null,針對這類判空一下。
可以看下getBooleanExtra的源碼:
public
boolean
getBooleanExtra(String
name,
boolean
defaultValue)
{
return
mExtras
==
null
?
defaultValue
:
mExtras.getBoolean(name,
defaultValue);
}
而getExtras()在沒有值時會返回null,看下源碼:
public
Bundle
getExtras()
{
return
(mExtras
!=
null)
?
new
Bundle(mExtras)
:
null;
}
所以,最好不要用getIntent().getExtras()這種方式,換用getIntent().getXXXExtras(),這樣針對有設置默認值的就不需要判空了。
activity之間傳值,是沒有機制可以確定哪個activity傳過來的。這是考慮到代碼的可擴展性,解耦。要確定哪個activity發過來,在intent創建那裡多傳個布爾值就行,比方說下面的代碼。
發送
intent.putExtra("fromXXActivity",
true);
接收
if
(getIntent().getBooleanExtra("fromXXActivity",
false))
{
......
//
這里,你就可以安全的接收那個activity發過來的所有值。
}
❼ intent傳值是如何傳的
1、函數或過程調用時可能要傳遞參數,參數的傳遞分為傳值和傳地址。
2、把變數的值傳遞給函數或過程,叫傳值;把變數的地址傳遞給函數或過程叫傳地址。
3、pascal的過程或函數中聲明的接收參數的方式決定了一個參數是傳值的,還是傳地址的;傳地址變數前會加VAR,傳值的不加。
4、例如:
PROCEDURE p(a:integer; VAR b:integer);
假設x和y都是integer型的調用p(x,y);時,x是傳值的,y是傳地址的。
❽ 如何在Android開發中activity之間數據傳遞
用intent在activity之間傳遞數據,需要注意三個方法:
1.startActivityForResult(Intent intent, int requestCode)
2.setResult(int resultCode, Intent data)
3.onActivityResult(int requestCode, int resultCode, Intent data)
需要注意的是:
1.函數1在Activity_A裡面調用,然後啟動Activity_B(由intent參數決定啟動哪個activity);然後Activity_B執行完了之後,在finish()函數裡面調用函數2;此時返回Activity_A;最後在Activity_A裡面系統自動調用已經重載的函數3,Activity_A可以從該函數的第三個參數data裡面獲得想要的數據。
2.函數1有兩個參數,第二個參數確定請求碼;
3.函數3有三個參數:第一個參數請求碼,與函數1的第二個參數意義相同,用於確定是否是從Activity_B里獲得的返回值;第二個參數是結果碼,用於確定返回的結果是否可用;第三個參數是intent變數,用於傳遞數據。