Android人机用户界面2--学习
来源:互联网 发布:java的项目经验怎么写 编辑:程序博客网 时间:2024/06/06 00:30
Style样式的定义
Layout.xml文件:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
style="@style/Style2"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
style="@style/Style1"
/>
Style.xml文件:
<style name="Style1">
<item name="android:textSize">18sp</item>
<item name="android:textColor">#ec9237</item>
</style>
<style name="Style2"><item name="android:textSize">14sp</item>
<item name="android:textColor">#ff7f7c</item>
<item name="android:fromAlpha">0.0</item>
<item name="android:toAlpha">0.0</item>
</style>
Button事件处理
按钮事件Button.OnClickListener
Layout.xml文件:
<Button android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="按一下我"/>
Activity.java文件:
button = (Button)findViewById(R.id.button);
textView = (TextView)findViewById(R.id.textView);
button.setOnClickListener(buttonListener);
private Button.OnClickListener buttonListener = new Button.OnClickListener(){
public void onClick(View v) {
textView.setText("somebody has kit me "+(num ++));
}
};
SetContentView的应用(手机页面的跳转)
main.xml文件:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="第一个页面"
/>
<Button android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="跳到第二个页面"/>
next.xml文件:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="第二个页面"
/>
<Button android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="跳到第一个页面"/>
Activity.java文件:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1 = (Button)findViewById(R.id.button1);
b1.setOnClickListener(button1Listener);
}
private OnClickListener button1Listener = new OnClickListener(){
public void onClick(View v) {
jumpToLayout2();
}
};
private OnClickListener button2Listener = new OnClickListener(){
public void onClick(View v) {
jumpToLayout1();
}
};
private void jumpToLayout1() {
// TODO Auto-generated method stub
setContentView(R.layout.main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(button1Listener);
}
private void jumpToLayout2() {
// TODO Auto-generated method stub
setContentView(R.layout.next);
Button button2 = (Button)findViewById(R.id.button2);
button2.setOnClickListener(button2Listener);
}
布局
FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角
LinearLayout:里面可以放多个控件,但是一行只能放一个控件
TableLayout:这个要和TableRow配合使用,很像html里面的table
AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置
RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置
Bundle对象,不有Activity之间的数据传递
在一个Activity调用另一个Activity时,但若需要调用另一个Activity的同时传送数据,那么就需要利用Android.os.Bundle对象封装数据,将欲传递的数据或参数通过Bundle来传递不同Intent之间的数据.(可传简单的数据类型,也可以复杂类型:String[],ArrayList<String>等
Activity.java文件:
Intent intent = new Intent();
intent.setClass(MainActivity.this, ResultActivity.class);
//new一个bundle对象,并将要传递的数据传入
Bundle bundle = new Bundle();
bundle.putDouble("height",height);
bundle.putString("sex", sex);
//将Bundle对象assign给Intent
intent.putExtras(bundle);
startActivity(intent);
另一个Activity.java文件:
Bundle bundle = this.getIntent().getExtras();
//取得数据
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");
startActivityForResult方法(返回数据到前一个Activity)
数据从Activity1传递到Activity2,再从Activity2到Activity1,返回上页且能保存之前信息。那么就必须用startActivityForResult来唤起一个Activity,这样前一个Activity1便会有一个等待次Activity2的返回,而返回的数据就可以达到我们想要的效果.
MainActivity.java文件:
Intent intent = new Intent();
intent.setClass(MainActivity.this, ResultActivity.class);
//new一个bundle对象,并将要传递的数据传入
Bundle bundle = new Bundle();
bundle.putDouble("height",height);
bundle.putString("sex", sex);
//将Bundle对象assign给Intent
intent.putExtras(bundle);
//startActivity(intent);
startActivityForResult(intent,0);
//第二个参数为requetsCode,为用户定义
//与onActivityResult函数中的requestCode相同,使用的时候注意
//重写onActivityResult函数/ requestCode为另一个Activity返回的数
protected void onActivityResult(int requestCode, int resultCode, Intent data)
switch(resultCode)
{
case RESULT_OK:
//取来自Activity2的数据,并显示于页面上
Bundle bundle = data.getExtras();
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");
editText.setText(""+height);
if(sex.equals("M"))
{
radioButton1.setChecked(true);
}
else
{
radioButton2.setChecked(true);
}
break;
default: break;
}
}
ResultActivity.java文件:
private OnClickListener backListener = new OnClickListener(){
public void onClick(View v) {
//返回给上一个activity
ResultActivity.this.setResult(RESULT_OK, intent);
//结束这个activity
ResultActivity.this.finish();
}
};
(其中intent = this.getIntent();获得)
- Android人机用户界面2--学习
- Android人机用户界面1----学习
- Android人机用户界面3--学习
- 学习Android之用户界面基础
- android用户界面之Gallery3D学习资料汇总
- Android学习:用户界面UI之AlertDialog
- Android 4学习(7):用户界面 - 基础
- Android 4学习(8):用户界面 - Fragment
- Android用户界面基础之ToggleButton学习
- Android用户界面基础之Chronometer控件学习
- Android用户界面基础之ViewGroup学习
- [学习笔记]用户界面优化之Android Fragment
- [学习笔记]用户界面优化之Android ViewPager
- android用户界面
- android用户界面
- android用户界面
- Android用户界面
- 跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(2)
- Const,Const函数,Const变量,函数后面的Const
- Android人机用户界面1----学习
- 数据库未打开 仅允许在固定表 试图中查询或者无法表示/锁定数据文件
- Java面试题目
- Fixing "The following VMware kernal modules have been found on your system that were not installed by the VMware installer."
- Android人机用户界面2--学习
- Android人机用户界面3--学习
- C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
- 用MinGW编译Ogre-1.7.1
- 关于约瑟夫环的问题
- Exception occurred while trying to invoke service method makeOrder
- 如何写好Windows Service
- 编码与解码;字符串字典序问题;根据字符串找位序,根据位序找字符串;
- 多态(virtual)– 真正的面向对象编程