Android 台灣中文網
標題:
要怎麼把取得的uri 回傳給String srcPath呢?
[打印本頁]
作者:
wind8894
時間:
2012-7-19 18:47
標題:
要怎麼把取得的uri 回傳給String srcPath呢?
我現在有個action_pick的程式,取得取得該檔案的 uri 但是不知道要怎麼回傳給上面宣告的private String srcPath ;
然後用textview去讀取srcPath這個字串,mText1.setText("文件路径:\n" + srcPath);
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class DatapickActivity extends Activity {
/** Called when the activity is first created. */
private TextView mText1;
private String srcPath ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mText1 = (TextView) findViewById(R.id.myText2);
mText1.setText("文件路径:\n" + srcPath);
Button b = (Button)this.findViewById(R.id.buttonObj);
b.setOnClickListener( new OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
// 建立 "選擇檔案 Action" 的 Intent
Intent intent = new Intent( Intent.ACTION_PICK );
// 過濾檔案格式
intent.setType( "image/*" );
// 建立 "檔案選擇器" 的 Intent (第二個參數: 選擇器的標題)
Intent destIntent = Intent.createChooser( intent, "選擇檔案" );
// 切換到檔案選擇器 (它的處理結果, 會觸發 onActivityResult 事件)
startActivityForResult( destIntent, 0 );
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// 有選擇檔案
if ( resultCode == RESULT_OK )
{
// 取得檔案的 Uri
Uri uri = data.getData();
if( uri != null )
{
// 利用 Uri 顯示 ImageView 圖片
ImageView iv = (ImageView)this.findViewById(R.id.imageViewObj);
iv.setImageURI( uri );
}
else
{
setTitle("無效的檔案路徑 !!");
}
}
else
{
setTitle("取消選擇檔案 !!");
}
}
}
複製代碼
作者:
ploglin
時間:
2012-7-20 15:45
intent 可以傳遞參數
putExtra("Name", "Value")
在另一個 activity 取值
getIntent().getStringExtra("Name")
型態請自行變換
作者:
wind8894
時間:
2012-7-20 16:20
他好像是在同一個activity吧?只是action_pick使得按下button後會跳出選擇圖片的activity
作者:
ploglin
時間:
2012-7-21 08:32
如果是這支程式,根本就沒有給值呀?
作者:
wind8894
時間:
2012-7-21 11:10
本帖最後由 wind8894 於 2012-7-21 11:15 編輯
因為uri 是檔案的路徑 要選擇SD卡內的檔案後才會有這個值
我是這樣改的
然後啟動後的activity
Uri uri = data.getData();
srcPath=uri.toString();
intent.putExtra("srcPath",srcPath);
複製代碼
然後啟動前的activity
getIntent().getStringExtra("srcPath");
複製代碼
還是無法改變textview顯示srcPath的路徑
作者:
ploglin
時間:
2012-7-21 11:46
所以你現在有2個 activity 嗎?
假設有a,b這2個activity
a 傳值給 b
在a就要用 putExtra
在b就要用 getStringExtra
作者:
wind8894
時間:
2012-7-21 12:16
只有一個activity,是在同一個button後,會跳出選擇檔案的action,然後選完會再跳回去本來的頁面
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1