<少女> 2022-11-26 16:47 采纳率: 90.9%
浏览 2
已结题

这里为什么我选择图片之后不能返回图片啊?选完之后就变空白了,这是哪里错了吗?详解必采纳


package com.example.studytest06;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==0x11&&requestCode==0x11){
            Bundle bundle=data.getExtras();
            int imageId=bundle.getInt("iamgeId");
            ImageView imageView=findViewById(R.id.touxiang);
            imageView.setImageResource(imageId);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xuanzhetouxiang);
//        Button btn1=findViewById(R.id.btn1);
//        btn1.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                String name=((EditText)findViewById(R.id.name)).getText().toString();
//                String age=((EditText)findViewById(R.id.age)).getText().toString();
//                String sex=((EditText)findViewById(R.id.sex)).getText().toString();
//                Intent intent=new Intent(MainActivity.this,shujujiaohu2.class);
//                Bundle bundle=new Bundle();
//                bundle.putCharSequence("name2",name);
//                bundle.putCharSequence("age2",age);
//                bundle.putCharSequence("sex2",sex);
//                intent.putExtras(bundle);
//                startActivity(intent);
//            }
//        });


//        Log.i("Activity生命周期","onCreate()方法调用");
//        //定义一个存放数据的数组
//        String[] ctype=new String[]{"张三","李四","王五","赵六"};
//        //先定义一个适配器,第二个参数用于显示listView的样式,这里使用android自配给我们的就可以,第三个参数就是我们定义的数据名称
//        //这里其实也就是初始化适配器
//        ArrayAdapter<String> adapter=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,ctype);
//        //获取listView,然后为其创建适配器。通过适配器将定义好的数据,传入到listView列表中
//        ListView listView=findViewById(R.id.list_view1);
//        //也就是先创建好样式,再创建适配器。将样式添加到适配器中,适配器再添加到listView列表中。
//        listView.setAdapter(adapter);



//        String[] name=new String[]{"周一","周二","周三","周四","周五","周六","周末"};
//        ArrayAdapter<String> adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,name);
//        ListView listView=findViewById(R.id.list_view1);
//        listView.setAdapter(adapter);

//
//        //首先定义数据,这里先定义一个存放图片的,在定义一个存放文本的
//        int[] imageId=new int[]{R.drawable.touxiang,R.drawable.touxiang2,R.drawable.touxiang3,R.drawable.touxiang6,
//        R.drawable.touxiang7,R.drawable.touxiang8};
//        String[] titletext=new String[]{"头像1","头像1","头像1","头像1","头像1","头像1"};
//        //由于这里需要使用到自己自定义的布局,所以需要先获取布局里面的样式,这里使用list中的hashlist进行添加数据,并为其布局
//        List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
//        //使用循环向其中添加
//        for(int i=0;i<imageId.length;i++){
//            //声明并实例化一个Map的子类对象hashmap为其中添加内容
//            Map<String,Object> map=new HashMap<String,Object>();
//            map.put("image",imageId[i]);
//            map.put("titletext",titletext[i]);
//            list.add(map);
//        }
//        //为listView添加适配器,这个适配器用作将数据源和listView之间的桥梁
//        //注意下面的这个添加的String[]与int[]是要相对的,不可以不一致,也就是说,image---image,title---title,但凡对错误就不会运行出来。
//        // 还有这里的数据源,是添加到集合里面的,也就是键值对里面的键。不再是最上面定义的数据时的名字了
//        SimpleAdapter adpter=new SimpleAdapter(this,list,R.layout.activity2,new String[]{"image","titletext"},
//                new int[]{R.id.image,R.id.title});
//        //实例化ListView
//        ListView listView=findViewById(R.id.list_view1);
//        //为其添加数据。
//        listView.setAdapter(adpter);
//        //为了验证这个列表的正确性,那就添加一个提示信息。那么这里就添加一个监听绑定事件
//        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//                Map<String, Object> map=(Map<String, Object>)parent.getItemAtPosition(position);
//                Toast.makeText(MainActivity.this,map.get("titletext").toString(),Toast.LENGTH_SHORT).show();
//            }
//        });
//        //首先先定义一组数据,用于添加自定义的数据
//        String[] data=new String[]{"全部","语文","数学","英语"};
//        //创建适配器,用于连接spinner与数据。
//        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,data);
//        //获得Spinner,在想其中设置适配器
//        Spinner spinner=findViewById(R.id.spinner);
//        spinner.setAdapter(adapter);
//        //首先获得布局
//        LinearLayout ll=findViewById(R.id.ll);
//        //再创建一个布局
//        LinearLayout ll2=new LinearLayout(MainActivity.this);
//        ll2.setOrientation(LinearLayout.VERTICAL);
//        //创建一个滚动条,将刚刚创建好的布局添加到滚动条中,再将滚动条添加到第一个页面
//        ScrollView scrollView=new ScrollView(MainActivity.this);
//        scrollView.addView(ll2);
//        ll.addView(scrollView);
//        //创建一个存放图片的资源布局
//        ImageView imageView=new ImageView(MainActivity.this);
//        imageView.setImageResource(R.drawable.touxiang);
//        ll2.addView(imageView);
//        TextView textView=new TextView(MainActivity.this);
//        textView.setText(R.string.gundonganli);
//        ll2.addView(textView);

//        LinearLayout linearLayout=findViewById(R.id.ll);
//        ScrollView scrollView1=new ScrollView(MainActivity.this);
//        LinearLayout linearLayout1=new LinearLayout(MainActivity.this);
//        ImageView imageView1=new ImageView(MainActivity.this);
//        imageView1.setImageResource(R.drawable.touxiang2);
//        TextView textView1=new TextView(MainActivity.this);
//        textView1.setText(R.string.gundonganli);
//        linearLayout1.setOrientation(LinearLayout.VERTICAL);
//        linearLayout1.addView(imageView1);
//        linearLayout1.addView(textView1);
//        scrollView1.addView(linearLayout1);
//        linearLayout.addView(scrollView1);

//        TabHost tabHost=(TabHost)findViewById(android.R.id.tabhost);
//        tabHost.setup();
//        LayoutInflater inflater=LayoutInflater.from(this);
//        inflater.inflate(R.layout.tab1,tabHost.getTabContentView());
//        inflater.inflate(R.layout.tab2,tabHost.getTabContentView());
//        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("微信").setContent(R.id.left));
//        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("通讯录").setContent(R.id.right));
        //为选择头像这个按钮设置监听器、
       Button button=findViewById(R.id.xuanzetouxiang);
       button.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               //用于页面的跳转,其中这里的startActivityForResult返回数据,其中0x11是请求码
               Intent intent=new Intent(MainActivity.this,HeadActivity.class);
               startActivityForResult(intent,0x11);
           }
       });
    }
//    @Override
//    protected void onStart() {
//        Log.i("Activity生命周期","onStart()方法调用");
//        super.onStart();
//    }
//
//    @Override
//    protected void onResume() {
//        Log.i("Activity生命周期","onResume()方法调用");
//        super.onResume();
//    }
}
package com.example.studytest06;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.media.Image;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;

public class HeadActivity extends AppCompatActivity {
    public  int[] imageId=new int[]{R.drawable.touxiang,R.drawable.touxiang3,
            R.drawable.touxiang2,R.drawable.touxiang7,R.drawable.touxiang8,R.drawable.touxiang6,
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_head);
        GridView gridView=findViewById(R.id.gridView);
        //为网格布局设置适配器,这里选择的适配器是baseadapter
        BaseAdapter adapter=new BaseAdapter() {
            @Override
            public int getCount() {
                return imageId.length;
            }

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

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

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView imageView;
                if (convertView == null) {
                    imageView = new ImageView(HeadActivity.this);
                    imageView.setAdjustViewBounds(true);
                    imageView.setMaxHeight(150);
                    imageView.setMaxHeight(158);
                    imageView.setPadding(5, 5, 5, 5);
                } else {
                    imageView = (ImageView) convertView;
                }
                imageView.setImageResource(imageId[position]);
                return imageView;
            }
        };
        //为网格视图添加适配器。并返回结果
        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent=getIntent();
                Bundle bundle=new Bundle();
                bundle.putInt("imageId",imageId[position]);//这里为什么这么写?imageId[position]
                intent.putExtras(bundle);
                setResult(0x11,intent);
                finish();

            }
        });
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<ImageView
    android:id="@+id/touxiang"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:src="@drawable/image"
    android:layout_marginTop="50dp"
    android:layout_marginLeft="150dp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/xuanzetouxiang"
        android:text="选择头像"
        android:textSize="50sp"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="98dp"/>
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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"
    tools:context=".HeadActivity">
<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/gridView"
    android:layout_marginTop="10dp"
    android:horizontalSpacing="3dp"
   android:verticalSpacing="3dp"
    android:numColumns="4">

</GridView>
</RelativeLayout>

img

img

  • 写回答

1条回答 默认 最新

  • 码上就疯 2022-11-26 17:48
    关注

    你太粗心了, 返回时是 "imageId",获取时是"iamgeId"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器