❶ android通過intent傳值,無法接收到值,代碼如下:
java">1.傳值
Bundlebundle=newBundle();
bundle.putString("dealerid",dealerid);
Intentintent=newIntent(getActivity(),DealerActivity.class);
intent.putExtras(bundle);
startActivity(intent);
2.接收
Stringdealerid=(String)getIntent().getExtras().get("dealerid");
❷ android問題 NavUtils.getParentActivityIntent 返回值為null
這個是在AndroidManifest裡面設置的。
<application...>
...
<!--Themain/homeactivity(ithasnoparentactivity)-->
<activity
android:name="com.example.myfirstapp.MainActivity"...>
...
</activity>
<!--Achildofthemainactivity-->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity">
<!--Parentactivitymeta-datatosupport4.0andlower-->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity"/>
</activity>
</application>
❸ android運行時nullpointerexception異常
public void onClick(View v) {
// TODO Auto-generated method stub
String s1 = ed1.getText().toString();
String s2 = ed2.getText().toString();
Intent intent = new Intent();
intent.putExtra("one", s1);
intent.putExtra("two", s2);
intent.setClass(Android02Activity.this, Result.class);
Android02Activity.this.startActivity(intent);
}
這段代碼中的ed1 ed2兩個對象應該是空的,lz沒有在onCreate中對他們進行賦值
❹ android 中成員變數變成null了,怎麼辦
沒明白你什麼意思
如果你在成員變數中
Intent intent = new Intent(this,xxx.class);
那肯定報錯是,因為成員變數調用this還是null
只有進入構造方法了,this才不是null
❺ android intent 傳數據問題,能否確定傳入的數據來自哪個activity
完全可以,只需要往intent裡面添加一個標識數據即可
//兩個activity
//第一個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中,經常new出Intent或者file等,需不需要用完他們後立即來個=null釋放內存
這個要看你的變數申明方式,如果是局部變數,做不做沒啥影響(你的局部方法完了,他自己變數指針就是null了,這牽扯到一定java回收機制原理,你可以查查)。如果是全局變數,你要考慮是否應該回收。但是全局變數,你不會申明很多吧?而且你反復new全局變數,之前用過的也變垃圾了,沒影響啊
❼ android中intent的作用 越詳細越好
1 Intent.ACTION_MAIN
String: android.intent.action.MAIN
標識Activity為一個程序的開始。比較常用。
Input:nothing
Output:nothing
例如:
1
2
3
4
5
6
也可以直接在程序中實現 Intent it = new Intent(原Activity.class,需跳轉Activity.class);
2 Intent.Action_CALL
Stirng: android.intent.action.CALL
呼叫指定的電話號碼。
Input:電話號碼。數據格式為:tel:+phone number
Output:Nothing
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:1320010001");
startActivity(intent);
3 Intent.Action.DIAL
String: action.intent.action.DIAL
調用撥號面板
Intent intent=new Intent();
intent.setAction(Intent.ACTION_DIAL); //android.intent.action.DIAL
intent.setData(Uri.parse("tel:1320010001");
startActivity(intent);
Input:電話號碼。數據格式為:tel:+phone number
Output:Nothing
說明:打開Android的撥號UI。如果沒有設置數據,則打開一個空的UI,如果設置數據,action.DIAL則通過調用getData()獲取電話號碼。
但設置電話號碼的數據格式為 tel:+phone number.
4.Intent.Action.ALL_APPS
String: andriod.intent.action.ALL_APPS
列出所有的應用。
Input:Nothing.
Output:Nothing.
5.Intent.ACTION_ANSWER
Stirng:android.intent.action.ANSWER
處理呼入的電話。
Input:Nothing.
Output:Nothing.
6 Intent.ACTION_ATTACH_DATA
String: android.action.ATTCH_DATA
別用於指定一些數據應該附屬於一些其他的地方,例如,圖片數據應該附屬於聯系人
Input: Data
Output:nothing
7 Intent.ACTION_BUG_REPORT
String: android.intent.action.BUG_REPORT
顯示Dug報告。
Input:nothing
output:nothing
8 Intent.Action_CALL_BUTTON
String: android.action.intent.CALL_BUTTON.
相當於用戶按下「撥號」鍵。經測試顯示的是「通話記錄」
Input:nothing
Output:nothing
Intent intent = new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(intent);
9 Intent.ACTION_CHOOSER
String: android.intent.action.CHOOSER
顯示一個activity選擇器,允許用戶在進程之前選擇他們想要的,與之對應的是Intent.ACTION_GET_CONTENT.
10. Intent.ACTION_GET_CONTENT
String: android.intent.action.GET_CONTENT
允許用戶選擇特殊種類的數據,並返回(特殊種類的數據:照一張相片或錄一段音)
Input: Type
Output:URI
這個以前用到過,看事例。
選擇一個圖片:
代碼
int requestCode = 1001;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); // "android.intent.action.GET_CONTENT"
intent.setType("image/*"); // 查看類型,如果是其他類型,比如視頻則替換成 video/*,或 */*
Intent wrapperIntent = Intent.createChooser(intent, null);
startActivityForResult(wrapperIntent, requestCode);
❽ 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 studio intent傳值問題
首頁putExtra的時候,傳入int數:intent.putExtra("sss",sss);
第二個界面用getIntExtra接受:int sss= intent().getIntExtra("sss");
❿ 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發過來的所有值。
}