- 浏览: 76180 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
文章分类
- 全部博客 (86)
- Java_Develop (6)
- Develop about Android (11)
- Develop about C (3)
- Develop about C++ (13)
- Develop about Objective-C (8)
- Develop about XML&DOM4J (6)
- Develop about JSP (7)
- Develop about Servlet (14)
- develop about MySql (4)
- Develop about Java_Socket (1)
- Develop about Java_Thread (4)
- Develop about IOS (8)
最新评论
-
eric_weitm:
在效率本身上而言,引用也有优势。另外,在编译器实现时,指针的传 ...
C++中的 引用和指针区别
多种方式实现页面切换
今天老师留的作业如题,要求用三种方式实现:按钮切换,按键切换和触摸切换。
先说我做的第一种方式逻辑:
先上代码:
OneActivity.java文件代码:
package cn.class3g;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class OneActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button nextButton = (Button)findViewById(R.id.next);
nextButton.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
setContentView(R.layout.two);
ButtonupButton=(Button)findViewById(R.id.up);
upButton.setOnClickListener(newOnClickListener() {
@Override
publicvoid onClick(View v) {
setContentView(R.layout.main);
ButtonnextButton = (Button)findViewById(R.id.next);
}
});
}
});
}
}
解释:这是我最初写的代码,布局文件写了两个:main.xml和two.xml,分别显示两个页面,分别有一个<TextView>和<Button>元素,具体代码如下:
Main.xml代码:
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="这是第一页"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/next"
android:text="下一页"/>
</LinearLayout>
Two.xml代码:
<?xmlversion="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="这是第二页"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/up"
android:text="上一页"
/>
</LinearLayout>
两个xml文件写完后就是写逻辑了,java代码如开头写的那样,我是这样想的:
默认的onCreate方法初始化后,通过setContentView调用布局文件main。Xml这就是默认的布局,然后声明了一个Button组件命名为nextButton,调用setOnClickListener监听器实现对按钮的监听,在监听器中new了一个点击监听器onclickListener,在监听器中实现了一个名为onClick的方法,在这里我写了一个跳转页面的setContentView方法,通过点击Button按钮实现跳转到two.xml布局页面上,这样就打开了two.xml页面;在这个页面上写了另一个Button按钮命名为:upButton用来返回上页面,就这样通过嵌套就实现了通过点击按钮实现页面切换的效果。
但这不是我想要的效果,我要的效果是无论点击哪个按钮都会出现不同的样式页面,所以我通过对按钮进行判断来实现效果。首先想到的是用if语句进行判断点击的是哪个按钮,然后进行不同的操作。我想这样好点吧,但事实上不需要那么复杂去判断键值就可以实现:
packagecn.class3g;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
public classActivityTest extends Activity {
/** Called when the activity is firstcreated. */
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button nextButton =(Button)findViewById(R.id.next);
nextLayout();//显示下一个页面
}
public void nextLayout(){
setContentView(R.layout.two);
ButtonupButton=(Button)findViewById(R.id.up);
upButton.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View v) {
upLayout();
}
});
}
public void upLayout(){
setContentView(R.layout.main);
ButtonnextButton = (Button)findViewById(R.id.next);
nextButton.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View v) {
nextLayout();//显示下一个桌面
}
});
}
}
然后是通过按键实现页面切换,通过老师上午的实例可以知道,在调用onClickDown或onClickUp的方法中调用页面布局文件就可以实现:setContentView(R.layout.main);,在OnClickDown和onClickUp中分别添加两个页面的布局文件,再添加相反的方法,实现返回即可,代码如下:
public boolean onKeyDown(int keyCode,KeyEvent event) {
this.setContentView(R.layout.main);
returnsuper.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode,KeyEvent event){
//showInfo("keyUp"+keyCode);
this.setContentView(R.layout.second);
return super.onKeyUp(keyCode,event);
}
触摸实现换页
public booleanonTouchEvent(MotionEvent event){
//showInfo("ontouch:x=" +event.getX() + " y="+event.getY());
flag = !flag;
if(flag){
this.setContentView(R.layout.main);
}else{
this.setContentView(R.layout.second);
returnsuper.onTouchEvent(event);
}
总结:
调用布局文件:setContentView(R.layout.main);
获取组件ID:ButtonnextButton = (Button)findViewById(R.id.next);
做题的过程中重命名了一次java文件,导致无法调试,原因是:忘记更改AndroidManifest.xml文件中的<activity>下的<android:name>属性值。
发表评论
-
Android开发——概述及环境搭建
2011-12-05 21:25 665今天开始学习安卓手机软件开发,首先介绍一下Android: ... -
Android开发之:第一个应用程序及工程文件及结构详解
2011-12-06 17:10 813Android开发之:第一个应用程序及工程文件及结构详解 ... -
Android开发——手机拨号程序实现
2011-12-06 19:50 959在上一篇文章中,我们实现了第一个程序:helloWorld,并 ... -
Android开发——关于onCreate的解读
2011-12-06 20:34 855当我们创建好一个Android项目后,打开src下的java ... -
Android开发——布局详解(上)
2011-12-07 16:54 736Android开发——布局详解(上) 在昨天的学习中, ... -
Android开发——Android生命周期
2011-12-10 20:11 640Activity的三种状态: ... -
Android开发——菜单小问题解决
2011-12-12 20:47 826在写菜单项的时候发现一个不知道的知识点,问题是这样产生的。写好 ... -
Android开发——UI组件详解及注册提交表单实现
2011-12-13 21:44 840今天讲解的内容是UI组件的TextView组件和EditVie ... -
Android开发——跟随手指的小球实现
2012-01-11 14:13 882今天要实现的是一个跟随手指的小球,说白了就是让小球按着手指滑动 ... -
Android开发——实现点击图片切换效果
2012-01-11 14:15 970在资源中添加5张图片,重命名为a-e。 实现java代码如下 ...
相关推荐
本文将深入探讨如何实现Android页面滑动切换,并重点介绍如何添加多种动画效果,包括移动、缩放和旋转等。 首先,我们要了解Android中的ViewPager组件,它是实现页面滑动切换的主要工具。ViewPager允许用户通过左右...
总的来说,实现Android页面切换涉及Intent的使用、Activity的生命周期管理以及动画效果的添加。开发者可以根据需求选择合适的切换方式和动画效果,提升应用的用户体验。同时,理解并掌握Android项目的文件结构对于...
在实际开发中,实现这样的状态切换布局可以采用多种方式,比如使用`ViewStub`组件来动态替换布局,或者使用`Fragment`来管理不同状态的视图。`ViewStub`是一个轻量级的View,初始时不会被绘制,只有当被inflate时才...
"android页面切换效果"这一主题主要关注如何在Android应用中实现类似苹果iOS设备上的平滑、动态的页面过渡动画,例如zoomin(放大)和zoomout(缩小)效果。这种效果能够为用户带来更加沉浸式和流畅的交互体验。 在...
总的来说,实现“android悬浮按钮切换页面”的功能涉及到对Android UI组件的理解,特别是FloatingActionButton的使用,以及事件监听、动画和页面切换等核心技能。通过这些技术的组合,开发者可以为用户提供直观且有...
总之,"Android页面滑动切换"涉及了Android开发中的多个核心概念和技术,包括触摸事件处理、视图切换、布局管理、动画和性能优化。通过理解和掌握这些知识点,开发者可以创建更加用户友好的应用程序。在实际项目中,...
在Android中,我们可以利用多种方法来实现这种效果,比如使用`ViewPager`组件,它是一个支持左右滑动切换页面的视图容器,能够自动处理页面的滚动和平滑切换。`ViewPager`与`PagerAdapter`配合使用,`PagerAdapter`...
8. **适配多种屏幕尺寸**: Android应用应考虑多种屏幕尺寸和分辨率,因此在设计底部导航栏和页面布局时,需要使用相对布局(`RelativeLayout`)或约束布局(`ConstraintLayout`)来确保界面在不同设备上的适配性。...
本篇文章将详细讲解Android的几种布局方式,包括线性布局、相对布局、表格布局、网格视图、标签布局、列表视图以及已废弃的绝对布局。 1. **线性布局(Linear Layout)** 线性布局是最基础的布局方式,它可以按照...
然而,当涉及到多个Fragment之间的切换时,可能会遇到一个问题:每次切换时,Fragment的布局可能会被重新实例化,导致用户体验下降,例如丢失用户在Fragment中的状态。为了解决这个问题,我们需要采取一系列策略来...
总之,Android平台提供了多种方式来实现Activity页面的切换特效,开发者可以根据需求选择适合的方法,以创造出更具吸引力和用户体验的应用。无论是简单的默认动画,还是复杂的自定义动画和过渡效果,都能让应用更加...
在 Android 中,我们可以通过多种方式来实现多个布局页面的切换。如上面的代码所示,我们可以通过按钮来实现布局的切换。我们可以添加一个按钮,然后添加事件监听器 onClickListener。当按钮被点击时,Activity 会将...
在Android应用开发中,标签布局(Tab Layout)是一种常见的组件,用于展示多个可切换的页面或视图。这种布局能够帮助用户在多个相关内容之间轻松导航,通常与ViewPager结合使用,提供一个滑动浏览的界面。"一个...
### Android 8.0系统界面切换时闪屏问题解析及解决方案 #### 一、问题背景与现象 在Android 8.0系统中,开发者可能会遇到一个常见问题:当应用程序进行界面切换时出现短暂的闪屏现象。这种现象不仅影响用户体验,...
RecyclerView因其高效的列表展示能力而广受欢迎,而ViewPager则能实现左右滑动切换页面的效果。结合两者,可以打造出动态、丰富的用户界面。 首先,`RecyclerView`是Android SDK提供的一种用于展示大量数据的视图...
总之,Android提供了丰富的API和工具来实现Activity切换动画。开发者可以根据需求和用户偏好,创造出各种独特且流畅的动画效果,为应用程序增添趣味性和专业性。通过学习和实践,你可以创建出令人印象深刻的交互体验...
总的来说,Android平台提供了多种实现选项卡切换的方式,从早期的`TabHost`到现代的`ViewPager`和`TabLayout`。虽然`TabControl`的概念可能已经过时,理解其背后的原理可以帮助我们更好地理解和使用现有的API,从而...
综上所述,"Android实现高仿墨迹天气页面"项目涵盖了Android开发中的UI设计、布局管理、数据加载、网络请求、数据解析、动画实现等多个核心知识点,对于初学者和进阶开发者来说,都是一个极好的实战练习。
1. **SlidingView**:SlidingView是一种常见的Android自定义视图,通常用于实现滑动手势操作,如抽屉菜单、页面切换等。它基于触摸事件监听和视图动画,使用户能通过左右滑动来显示或隐藏内容。在易信的UI中,可能...