此处用到了GridView类(GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的)
和适配器BaseAdapter(BaseAdapter就Android应用程序中经常用到的基础数据适配器,)
代码:
MainActivity.java
package com.hpu.headimage;
import com.hpu.model.Registerer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
final int requestCode=0x11;//requestCode请求码
private Button register;
private Button image;
private String username;
private String password;
private String repassword;
private String email;
private String Sex;
public static ImageView headimage=null;
public static int info=-1;
private EditText headeditname;
private EditText headeditmima;
private EditText headeditremima;
private EditText headeditemail;
private RadioGroup radio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
headimage=(ImageView)findViewById(R.id.headimage);
if(MainActivity.info!=-1){
headimage.setImageResource(MainActivity.info);//
}
headeditname=(EditText)findViewById(R.id.headeditname);
headeditmima=(EditText)findViewById(R.id.headeditmima);
headeditremima=(EditText)findViewById(R.id.headeditremima);
headeditemail=(EditText)findViewById(R.id.headeditemail);
radio = (RadioGroup)findViewById(R.id.sex);
System.out.println(username+" "+password+" "+email+" "+Sex);
register = (Button)findViewById(R.id.register);
image=(Button)findViewById(R.id.image);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,HeadActivity.class);
startActivityForResult(intent, requestCode);
}
});
register.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
username=headeditname.getText().toString();
password=headeditmima.getText().toString();
repassword=headeditremima.getText().toString();
email=headeditemail.getText().toString();
if(!password.equals(repassword)){
Toast.makeText(MainActivity.this,"两次输入的密码不一样", Toast.LENGTH_SHORT).show();
}else{
Intent intent = new Intent(MainActivity.this,RegisterViewActivity.class);
Registerer r = new Registerer();
for(int i=0;i<radio.getChildCount();i++){
RadioButton sex = (RadioButton)radio.getChildAt(i);
if(sex.isChecked()){
Sex=sex.getText().toString();
break;
}
}
r.setEmail(email);
r.setPassword(password);
r.setUsername(username);
r.setSex(Sex);
intent.putExtra("N", username);
Bundle bundle = new Bundle();
bundle.putSerializable("info", r);
intent.putExtras(bundle);
startActivityForResult(intent, requestCode);//调用另一个带有返回值的activity
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {//对另一个activity返回值的接收
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0x11&&resultCode==0x11){//判断对应的activity的返回,不同activity返回码不一样
Bundle b = new Bundle();
b=data.getExtras();
int imageid=b.getInt("imagenum");
info=imageid;
headimage.setImageResource(imageid);
}
else if(requestCode==0x11&&resultCode==0x12){
Bundle b = new Bundle();
b=data.getExtras();
((EditText)findViewById(R.id.headeditmima)).setText("");
((EditText)findViewById(R.id.headeditremima)).setText("");
}
}
}
activity_main.xml
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/headname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
android:textSize="20sp"
/>
<EditText
android:id="@+id/headeditname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/headmima"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码:"
android:textSize="20sp"
/>
<EditText
android:id="@+id/headeditmima"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/headremima"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="重复密码:"
android:textSize="20sp"
/>
<EditText
android:id="@+id/headeditremima"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/headsex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别:"
android:textSize="20sp"
/>
<RadioGroup //单选框组
android:id="@+id/sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton 单选框按钮
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
/>
</RadioGroup>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/heademail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="邮箱:"
android:textSize="20sp"
/>
<EditText
android:id="@+id/headeditemail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<Button
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册"
/>
</TableRow>
</TableLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:paddingTop="30dp"
>
<ImageView
android:id="@+id/headimage"
android:src="@drawable/ic_launcher"
android:layout_width="60dp"
android:layout_height="60dp"
/>
<Button
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择头像"
/>
</LinearLayout>
</LinearLayout>
页面效果:
图片选取:
HeadActivity.java
package com.hpu.headimage;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class HeadActivity extends Activity {
private GridView grid;//和ListView相似的多控件布局文件,可以实现九宫格图的效果
private int[] image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head);
image = new int[]{
R.drawable.shanghai_lupu_bridge,R.drawable.tennis,R.drawable.tennis1,
R.drawable.tennis2,R.drawable.tennis3,R.drawable.tennis4,
R.drawable.tennis5,R.drawable.tennis6,
};
grid=(GridView)findViewById(R.id.grid);
BaseAdapter base = new BaseAdapter() {//android中基础的适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(HeadActivity.this);
if(convertView==null){
imageview.setAdjustViewBounds(true);
imageview.setMaxHeight(60);
imageview.setMaxWidth(60);
imageview.setPadding(5, 5, 5, 5);
}else{
imageview = (ImageView)convertView;
}
imageview.setImageResource(image[position]);
return imageview;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image.length;//图片数量
}
};
grid.setAdapter(base);//绑定
grid.setOnItemClickListener(new OnItemClickListener() {//对点击图片事件监听
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Intent intent = getIntent();
Bundle b = new Bundle();
b.putInt("imagenum",image[position]);
intent.putExtras(b);
setResult(0x11, intent);
finish();
}
});
}
}
activity_head.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<GridView
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:horizontalSpacing="3dp"
android:verticalSpacing="3dp"
android:numColumns="4"
android:columnWidth="60dp"
android:gravity="center"
/>
</LinearLayou
界面:
选取之后: