android intent 传递view,android – 如何传递Intent Extras?

这个博客讲述了在Android应用中如何从GridView显示的视频缩略图启动一个新的VideoView活动。作者遇到的问题是在点击缩略图时,无法正确传递视频文件路径到目标Activity,并在目标Activity中播放视频。他们已经实现了查询SD卡上的视频并显示缩略图,但点击事件的处理和意图传递方面存在错误。
摘要由CSDN通过智能技术生成

public class Menus extends Activity {

//set constants for MediaStore to query, and show videos

private final static Uri MEDIA_EXTERNAL_CONTENT_URI = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;

private final static String _ID = MediaStore.Video.Media._ID;

private final static String MEDIA_DATA = MediaStore.Video.Media.DATA;

//flag for which one is used for images selection

private GridView _gallery;

private Cursor _cursor;

private int _columnIndex;

private int[] _videosId;

private Uri _contentUri;

protected Context _context;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

_context = getApplicationContext();

_gallery = (GridView) findViewById(R.id.videoGrdVw);

//set default as external/sdcard uri

_contentUri = MEDIA_EXTERNAL_CONTENT_URI;

//initialize the videos uri

//showToast(_contentUri.getPath());

initVideosId();

//set gallery adapter

setGalleryAdapter();

}

private void setGalleryAdapter() {

_gallery.setAdapter(new VideoGalleryAdapter(_context));

_gallery.setOnItemClickListener(_itemClickLis);

}

private AdapterView.OnItemClickListener _itemClickLis = new OnItemClickListener()

{

public void onItemClick(AdapterView> parent, View v, int position, long id)

{

// Now we want to actually get the data location of the file

String [] proj={MEDIA_DATA};

// We request our cursor again

_cursor = managedQuery(_contentUri,

proj, // Which columns to return

null, // WHERE clause; which rows to return (all rows)

null, // WHERE clause selection arguments (none)

null); // Order-by clause (ascending by name)

// We want to get the column index for the data uri

int count = _cursor.getCount();

//

_cursor.moveToFirst();

//

_columnIndex = _cursor.getColumnIndex(MEDIA_DATA);

// Lets move to the selected item in the cursor

_cursor.moveToPosition(position);

Intent i = new Intent();

i.putExtra("mnt/sdcard-ext", _ID);

startActivity("com.ave.EDITOR");

}

};

以上是我的第二个活动的一部分.基本上此代码显示手机SD卡中的视频缩略图.无论如何,当我点击缩略图时,我希望列表中的项目被点击打开到下面发布的新活动,这是一个ViewView.

public class Editor extends Activity {

ImageButton video1;

int isClicked = 0;

ImageButton audio;

int isClicked1 = 0;

private String path = "mnt/sdcard-ext";

private VideoView mVideoView;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

getWindow().setFormat(PixelFormat.TRANSLUCENT);

setContentView(R.layout.editor);

mVideoView = (VideoView) findViewById(R.id.videoView);

int data = getIntent().getExtras("mnt/sdcard-ext") .getInt("com.ave.EDITOR");

if (path == "mnt/sdcard-ext") {

// Tell the user to provide a media file URL/path.

Toast.makeText(

Editor.this,

"Please edit VideoViewDemo Activity, and set path"

+ " variable to your media file URL/path",

Toast.LENGTH_LONG).show();

} else {

/*

* Alternatively,for streaming media you can use

* mVideoView.setVideoURI(Uri.parse(URLstring));

*/

mVideoView.setVideoPath(path);

mVideoView.setMediaController(new MediaController(this));

mVideoView.requestFocus();

video1 = (ImageButton) findViewById(R.id.video1);

video1.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if (isClicked == 0) {

video1.setImageResource(R.drawable.video_pressed);

isClicked = 1;

} else {

video1.setImageResource(R.drawable.video1);

isClicked = 0;

}

}

});

audio = (ImageButton) findViewById(R.id.audio);

audio.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if (isClicked1 == 0) {

audio.setImageResource(R.drawable.audio_pressed);

isClicked1 = 1;

} else {

audio.setImageResource(R.drawable.audio);

isClicked1 = 0;

}

}

});

}

}

}

正如你所看到的,我不知道如何正确传递意图附加内容,也不知道如何从第3次活动中获取它们.所有帮助表示赞赏.谢谢.

====== Android Manifest ======(这不是完整的清单文件)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值