当前位置: 首页 > 知识库问答 >
问题:

使用Environment.GetExternalStoragePublicDirectory功能在android中从sdcard发送多个图像

慕容耘豪
2023-03-14

下面找到java文件,我不知道哪里出错了,但我的应用程序不幸停止了,有人可以帮助我哪里和在哪一行我出错了.....下面是我的logcat...详细信息

致命异常:main process:com.example.ankita.implicitIntent,PID:16822 java.lang.nullpointerexception at com.example.ankita.implicitintent.mainactivity.onclick(mainactivity.java:82)at android.view.view.performClick(view.java:4651)at android.view.view$performClick.run(view.java:19310)at android.os.handler.handleCallback(.main(ActivityThread.java:5653),java.lang.reflect.Method.invokenative(原生方法),java.lang.reflect.Method.invoke(Method.java:515),com.android.internal.os.zygoteinit$methodandArgsCaller.run(zygoteinit.java:1291),com.android.internal.os.zygoteinit.main(zygoteinit.java:1107),dalvik.system.NativePID:16822签名:9

package com.example.ankita.implicitintent;

import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import java.io.File;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements View.OnClickListener
{

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

        imgssend=(Button)findViewById(R.id.images_id);

        imgssend.setOnClickListener(this);
    }

    @Override
    public void onClick(View view)
    {
        Intent i=null,chooser=null;
        switch (view.getId())
        {
            case R.id.images_id:
                File Pictures= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
                String[] listofPictures=Pictures.list();
               Uri uri=null;
                ArrayList<Uri> arraylist=new ArrayList<Uri>();
                for(String picture:listofPictures)
                {
                    uri=uri.parse("file://"+Pictures.toString()+"/"+picture);
                    arraylist.add(uri);
                }
                i=new Intent(Intent.ACTION_SEND_MULTIPLE);
                i.setType("image/*");
                i.putExtra(Intent.EXTRA_STREAM,arraylist);
                chooser=Intent.createChooser(i,"Send multiple");
                startActivity(chooser);
                break;
        }
    }
}


    here is xml file

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.example.ankita.implicitintent.MainActivity">
    <Button
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="@string/send_images"
        android:id="@+id/images_id"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

共有1个答案

白博易
2023-03-14

看起来OnClick重写出了问题。为什么不使用按钮的onClick监听器?类似于这样:

public class MainActivity extends AppCompatActivity implements View.OnClickListener
{

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

    Button imgssend=(Button)findViewById(R.id.images_id);

    imgssend.setOnClickListener(new OnClickListener{
        @Override
        public void onClick(View v) {
            Intent i=null,chooser=null;
            File Pictures= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            String[] listofPictures=Pictures.list();
            Uri uri=null;
            ArrayList<Uri> arraylist=new ArrayList<Uri>();
            for(String picture:listofPictures)
            {
                uri=uri.parse("file://"+Pictures.toString()+"/"+picture);
                arraylist.add(uri);
            }
            i=new Intent(Intent.ACTION_SEND_MULTIPLE);
            i.setType("image/*");
            i.putExtra(Intent.EXTRA_STREAM,arraylist);
            chooser=Intent.createChooser(i,"Send multiple");
            startActivity(chooser);
        }
    });
}
}
 类似资料:
  • 我在一个类中有一个imageView,在单击imageView时,会出现一个对话框,它有两个选项,可以从相机中获取图像,也可以打开设备的图像库。我想将图像从一个类发送到另一个类,这样它就可以出现在ImageView中。我搜索了很多小时,但我只得到关于从一个类到另一个类的文本数据发送。谁能告诉我从一个类到另一个类的图像发送? 这是来自sender类的代码,它将获取图像。 谢谢你的帮助

  • 问题内容: 我正在关注http://javapapers.com/android/google-cloud-messaging-gcm-for-android- and-push-notifications/ 吗?通过GCM发送推送通知。一切正常,但是,我只能将推送通知发送到一台设备。注册另一台设备将替换先前设备的注册ID。我在http://javapapers.com/android/andro

  • 问题内容: 如何使用FLANN优化许多图片的SIFT功能匹配? 我有一个来自Python OpenCV文档的工作示例。但是,这是将一个图像与另一个图像进行比较,而且速度很慢。我需要它来搜索一系列图像(几千个)中匹配的特征,并且我需要它更快。 我目前的想法: 浏览所有图像并保存功能。怎么样? 将相机的图像与上述基础进行比较,然后找到正确的图像。怎么样? 给我结果,匹配图像或其他东西。 http://

  • 我是ActiveMQ新手。我曾尝试在activemq中实现生产者-消费者(发送者-接收器)。在我的代码中,我很容易发送 这是我的制片人 MsgProducer。Java语言 MsgConsumer.java 有谁能帮我找出向多个消费者发送信息的方法吗。提前谢谢。

  • 你好,我想上传多张图片到firebase。目前我可以上传1张图片。尽管如此,我还是决定将所有内容作为HTML,比如标题、描述和图像,放在一个webview中,并从那里显示出来。目前,这项工作还不错,我在firebase中有一个字符串,包含所有这些内容: 不过,正如您所见,这只是本地存储的工作形式。如何下载这些图像并用正确的firebase图像URL替换图像src。

  • 我正在使用的弹出窗口来显示菜单选项。 但问题是,它不适用于多种场景。 我的意思是,当我点击第一个菜单按钮时,同样的方法会被触发,因此每次都会打开同样的菜单。 处理此特定场景的更好方法应该是什么。 这是小吃