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应用中样式设置、按钮事件处理、页面跳转、布局管理及Activity间的数据传递方法。通过具体实例展示了如何定义和应用样式,实现按钮点击事件响应,进行不同页面间的跳转,并讲解了如何使用Bundle对象在Activity之间传递数据。
3984

被折叠的 条评论
为什么被折叠?



