Android简单的登录界面的值传递
16lz
2021-01-23
初学Android,这是一个用户登录界面,想把里面的值传递到另一个Activity中,先不说其他,上代码:
主界面(登录界面的Activity):MainActivity.java
package com.zhoujunwen.widget;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.content.Intent;import android.view.View.OnClickListener;import android.widget.*;public class MainActivity extends Activity {//声明按钮Buttonprivate Button register,cancle;//声明ToggleButtonprivate ToggleButton marriged;//声明单选按钮private RadioButton male,female;//声明文本编辑框private EditText username,password;//声明下拉列表private Spinner position;//声明多选按钮private CheckBox reading,swimming;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置Activity页面布局setContentView(R.layout.activity_main);//通过findViewById获得EditText对象username = (EditText)findViewById(R.id.username);password = (EditText)findViewById(R.id.password);//通过findViewById方法获得RadioButtonmale = (RadioButton)findViewById(R.id.male);female =(RadioButton)findViewById(R.id.female);//通过findViewById获得ChechBoxreading =(CheckBox)findViewById(R.id.reading);swimming =(CheckBox)findViewById(R.id.swimming);//通过findViewById获得ToggleButton实例marriged =(ToggleButton)findViewById(R.id.marriged);//通过findViewById获得Spinner实例position =(Spinner)findViewById(R.id.position);//下拉列表选项String[] str = {"CEO","CFO","PM"};//数组下拉列表适配器ArrayAdapter aa= new ArrayAdapter(this,android.R.layout.simple_spinner_item,str);//设置下拉列表适配器position.setAdapter(aa);//通过findViewById方法获得Button的实例register = (Button)findViewById(R.id.register);cancle =(Button)findViewById(R.id.cancle);//添加按钮的单击事件监听器register.setOnClickListener(new OnClickListener(){//点击事件方法@Overridepublic void onClick(View v) {// TODO Auto-generated method stubBundle b= new Bundle();//在Bundle中添加用户名称和用户密码b.putString("username", "用户名称:"+username.getText().toString());b.putString("password", "用户密码:"+password.getText().toString());//在Bundle中添加性别if(male.isChecked()){b.putString("gender","性别:男");}else{b.putString("gender","性别:女");}String temp= "爱好:";if(reading.isChecked()){temp+=" ";temp+="阅读";}if(swimming.isChecked()){temp+=" ";temp+="游泳";}//在Bundle中添加爱好b.putString("hobby",temp);//在Bundle中添加婚否if(marriged.isChecked()){b.putString("marriged","婚否:已婚");}else{b.putString("marriged","婚否:未婚");}//在Bundle添加职位b.putString("position","职位:"+position.getSelectedItem().toString());//实例化Intent,跳转到ResultActivityIntent intent = new Intent(MainActivity.this,ResultActivity.class);//讲Bundle添加到Intentintent.putExtra("data", b);//启动ActivitystartActivity(intent);}});}}
分析:1.Spinner制作下拉列表 步骤:①获取Spinner的实例
②产生下拉列表数组
③数组适配器
④设置下拉列表适配器
代码:
//通过findViewById获得Spinner实例position =(Spinner)findViewById(R.id.position);//下拉列表选项String[] str = {"CEO","CFO","PM"};//数组下拉列表适配器ArrayAdapter aa= new ArrayAdapter(this,android.R.layout.simple_spinner_item,str);//设置下拉列表适配器position.setAdapter(aa);
分析:2.Bundle用于从一个Activity传值到另一个Activity(其实有很多人说,用Intent的putExtra()方法就可以,但是,Bundle的优点在于传递复杂对象的值) 步骤:①实例化Bundle对象,保存属性
②调用Bundle的putString(key,value)方法,把属性保存到key里面
③实例化Intent,这是Android传递值得信使,没有它不行
④调用Intent的putExtra(key,value),这儿value换成Bundle的实例
⑤启动该Activity。调用方法startActivity(③中实例化Intent的对象)
代码:
Bundle b= new Bundle();//在Bundle中添加用户名称和用户密码b.putString("username", "用户名称:"+username.getText().toString());b.putString("password", "用户密码:"+password.getText().toString());//在Bundle中添加性别if(male.isChecked()){b.putString("gender","性别:男");}else{b.putString("gender","性别:女");}String temp= "爱好:";if(reading.isChecked()){temp+=" ";temp+="阅读";}if(swimming.isChecked()){temp+=" ";temp+="游泳";}//在Bundle中添加爱好b.putString("hobby",temp);//在Bundle中添加婚否if(marriged.isChecked()){b.putString("marriged","婚否:已婚");}else{b.putString("marriged","婚否:未婚");}//在Bundle添加职位b.putString("position","职位:"+position.getSelectedItem().toString());//实例化Intent,跳转到ResultActivityIntent intent = new Intent(MainActivity.this,ResultActivity.class);//讲Bundle添加到Intentintent.putExtra("data", b);//启动ActivitystartActivity(intent);
跳转到的页面:ResultActivity.java package com.zhoujunwen.widget;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class ResultActivity extends Activity{//声明ListViewprivate ListView listView;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置当前Activity界面布局setContentView(R.layout.result);//通过findViewById方法获得ListView对象listView=(ListView)findViewById(R.id.ListView01);//获得IntentIntent intent = this.getIntent();//从Intent中获得BundleBundle b = intent.getBundleExtra("data");//实例化ListList list = new ArrayList();//从Bundle中获得属性,添加到Listlist.add(b.getString("username"));list.add(b.getString("password"));list.add(b.getString("position"));list.add(b.getString("gender"));list.add(b.getString("hobby"));list.add(b.getString("marriged"));//实例化数组适配器ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_checked,list);//为ListView设置适配器listView.setAdapter(adapter);}}
需要分析的地方:Intent获取传递到的值 //获得IntentIntent intent = this.getIntent();//从Intent中获得BundleBundle b = intent.getBundleExtra("data");//实例化ListList list = new ArrayList();//从Bundle中获得属性,添加到Listlist.add(b.getString("username"));list.add(b.getString("password"));list.add(b.getString("position"));list.add(b.getString("gender"));list.add(b.getString("hobby"));list.add(b.getString("marriged"));//实例化数组适配器ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_checked,list);//为ListView设置适配器listView.setAdapter(adapter);
下面是两个布局文件: Activity_main.xml
<?xml version="1.0" encoding="utf-8"?> "
ResultActivity.xml <?xml version="1.0" encoding="utf-8"?> "
更多相关文章
- Android中判断网络是否连接实例详解
- Android 实现扫雷小游戏实例代码
- Android——ViewGroup的一个用法实例
- android APP隐私政策弹框的实现代码实例
- Android Intent机制实例详解(Activity篇)转
- android用户界面之WebView教程实例汇总
- Android:自定义适配器
- Android传感器使用实例1