Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到处理具有操作\视图意图的意图的活动_Java_Android_Eclipse_Android Intent_Logcat - Fatal编程技术网

Java 找不到处理具有操作\视图意图的意图的活动

Java 找不到处理具有操作\视图意图的意图的活动,java,android,eclipse,android-intent,logcat,Java,Android,Eclipse,Android Intent,Logcat,我正在构建一个简单的应用程序来复制视频。我这样做是为了勒恩的文本视图。我已经完成了所有,但当我复制一个应用程序崩溃的视频。我把所有代码都贴在这里。 这是主活动,也是应用程序的唯一活动 package com.example.movieplayer; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.database.Cursor; imp

我正在构建一个简单的应用程序来复制视频。我这样做是为了勒恩的文本视图。我已经完成了所有,但当我复制一个应用程序崩溃的视频。我把所有代码都贴在这里。 这是主活动,也是应用程序的唯一活动

package com.example.movieplayer;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.util.Log;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class MoviePlayerActivity extends Activity 
implements OnItemClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_movie_player);

    ArrayList<Movie> movieList = new ArrayList<Movie>();


    // elenco campi per la query sui media
    String[] mediaColumns = {
            MediaStore.Video.Media._ID, 
            MediaStore.Video.Media.TITLE,
            MediaStore.Video.Media.DURATION,
            MediaStore.Video.Media.DATA,
            MediaStore.Video.Media.MIME_TYPE
            };


    // elenco campi per la query sui thumbnail
    String[] thumbnailColumns = { MediaStore.Video.Thumbnails.DATA };

    // cursore sulle righe risultato

Cursor cursoreMedia = getContentResolver().
        query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                mediaColumns, null, null, null);

    // per ogni riga del risultto
    if ((cursoreMedia != null) && cursoreMedia.moveToFirst()) {
        do {
            int id = cursoreMedia.getInt(cursoreMedia
                    .getColumnIndex(MediaStore.Video.Media._ID));

            Cursor cursoreMiniature = getContentResolver().
                    query(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                            thumbnailColumns, MediaStore.Video.Thumbnails.VIDEO_ID
                            + "=" + id, null, null);

            // nuovo oggetto per l'arraylist

            Movie movie = new Movie(cursoreMedia, cursoreMiniature);
            movieList.add(movie);


        } while (cursoreMedia.moveToNext());

    }

    MovieListAdapter movieListAdapter = new MovieListAdapter(this, movieList);

    ListView movieListView = (ListView)findViewById(R.id.listView1);
    movieListView.setAdapter(movieListAdapter);

    movieListView.setOnItemClickListener(this);     

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    // TODO Auto-generated method stub

    Movie movie = (Movie) parent.getAdapter().getItem(position);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse(movie.getMovieFilePath()), 
                              movie.getMimeType());
    startActivity(intent);

}
}
这是电影改编者

    package com.example.movieplayer;

import java.util.ArrayList;
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.VideoView;


@SuppressLint({ "InflateParams", "DefaultLocale" })
class MovieListAdapter extends BaseAdapter {

    private Context context;
    ArrayList<Movie> videoList;

    public MovieListAdapter(Context context, ArrayList<Movie> movieList) {
    this.context = context;
    this.videoList = movieList; }





    @Override
    public int getCount() {
        return videoList.size();
    }

    @Override
    public Object getItem(int position) {
        return videoList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return  position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater layoutInflater =
                    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.movie_item, null);


        }

        Movie movie = (Movie) getItem(position);

        // thumbnail
        ImageView thumbnail = 
                (ImageView) convertView.findViewById(R.id.thumbnail);

        if (movie.getThumbnailFilePath() != null) {
            thumbnail.setImageURI(Uri.parse(movie.getThumbnailFilePath()));
        } else {
            thumbnail.setImageResource(R.drawable.ic_launcher);
        }

        //titolo
        TextView titolo = (TextView) convertView.findViewById(R.id.titolo);
        titolo.setText(movie.getTitolo());

        //durata
        TextView durata = (TextView) convertView.findViewById(R.id.durata);
        durata.setText(getDurataAsString(movie.getDurata()));

        return convertView;
    }

    private static String getDurataAsString(long durata) {

        long secondi = durata / 1000;
        long millisecondi = durata % 1000;

        long minuti = secondi / 60;
        secondi %= 60;

        long ore = minuti / 60;
        minuti %= 60;

        String durataString = String.format("%1$02d:%2$02d:%3$02d.%4$03d",
                ore, minuti, secondi, millisecondi);

        return durataString;
    }

}
有人知道问题出在哪里吗?

更换:

Uri.parse(movie.getMovieFilePath()
与:

看看这是否有帮助。从错误消息中,您的
Intent
中的
Uri
没有方案,此更改将解决该问题。

替换:

Uri.parse(movie.getMovieFilePath()
与:


看看这是否有帮助。从错误消息中,您的
Intent
中的
Uri
没有任何方案,此更改应该可以解决该问题。

有效。你能解释一下它到底是如何工作的以及为什么工作的吗?@Sash_-KP:是的,在回答的最后一句话中。有效的
Uri
必须有一个方案<如果传入的
字符串
没有方案,则code>Uri.parse()不会添加方案。因此,在普通路径中传递不适用于
Uri.parse()
。它可以工作。你能解释一下它到底是如何工作的以及为什么工作的吗?@Sash_-KP:是的,在回答的最后一句话中。有效的
Uri
必须有一个方案<如果传入的
字符串
没有方案,则code>Uri.parse()不会添加方案。因此,传入普通路径不适用于
Uri.parse()
Uri.parse(movie.getMovieFilePath()
Uri.fromFile(new File(movie.getMovieFilePath()))