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 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 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
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();
}
});
}
}
<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>
<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>
你太粗心了, 返回时是 "imageId",获取时是"iamgeId"