当前位置:  编程技术>移动开发
本页文章导读:
    ▪横竖屏切换时分Activity的生命周期        横竖屏切换时候Activity的生命周期 1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate-->onStart-->onResume-->3、按crtl+f12切换成横屏时onSaveInstanceState-->o.........
    ▪ 视图兑现gridview+adapter 图片加文字        视图实现gridview+adapter 图片加文字 1 这是实现的adapter类     package com.hao.test;   import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widge.........
    ▪ 依据 String ID 取得所有字符内容       根据 String ID 取得所有字符内容 最近做项目涉及到的知识点:效果图:直接贴代码了public String getAllText(Language show_text_language){    StringBuffer stringBuffer = new StringBuffer();    for (int i = 2; i <2.........

[1]横竖屏切换时分Activity的生命周期
    来源: 互联网  发布时间: 2014-02-18
横竖屏切换时候Activity的生命周期
1、新建一个Activity,并把各个生命周期打印出来

2、运行Activity,得到如下信息

onCreate-->
onStart-->
onResume-->

3、按crtl+f12切换成横屏时

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

5、修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",执行步骤3

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->

7、把步骤5的android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",执行步骤3,就只打印onConfigChanged

onConfigurationChanged-->

8、执行步骤4

onConfigurationChanged-->
onConfigurationChanged-->

总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法




总结一下整个Activity的生命周期

补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命周期不会有改变

Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState --> onPause --> onStop       onRestart -->onStart--->onResume

Activity未被完全覆盖只是失去焦点:onPause--->onResume

    
[2] 视图兑现gridview+adapter 图片加文字
    来源: 互联网  发布时间: 2014-02-18
视图实现gridview+adapter 图片加文字

1 这是实现的adapter类

 

 

package com.hao.test;

 

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;

 

public class gridadapter extends BaseAdapter {

    private LayoutInflater inflater;

    String[] name;

    int[] iconarray;

 

    public gridadapter(Context context, String[] name, int[] iconarray) {

        this.inflater = LayoutInflater.from(context);

        this.name = name;

        this.iconarray = iconarray;

    }

 

    @Override

    public int getCount() {

        return name.length;

    }

 

    @Override

    public Object getItem(int position) {

        return position;

    }

 

    @Override

    public long getItemId(int position) {

        return position;

    }

 

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;

        if (convertView==null) {

            holder=new ViewHolder();

            convertView=this.inflater.inflate(R.layout.main_grid_item, null);

            holder.iv=(ImageView) convertView.findViewById(R.id.main_grid_item_iv);

            holder.tv=(TextView) convertView.findViewById(R.id.main_grid_item_tv);

            convertView.setTag(holder);

        }

        else {

           holder=(ViewHolder) convertView.getTag();

        }

        holder.iv.setImageResource(iconarray[position]);

        holder.tv.setText(name[position]);

        return convertView;

    }

    private class ViewHolder{

        ImageView iv;

        TextView tv;

    }

 

}

 

 

2这是要显示的格式main_grid_item

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:gravity="center"

android:layout_width="wrap_content" android:layout_height="wrap_content">

<ImageView android:id="@+id/main_grid_item_iv"

android:layout_width="69dip" android:layout_height="69dip" />

<TextView android:id="@+id/main_grid_item_tv"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"

android:text android:textColor="#333333"  />

</LinearLayout>

 

 

3 这个是activity中要显示的main.xml

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<GridView android:id="@+id/main_menu_grid_view"

android:layout_width="fill_parent" android:layout_height="fill_parent"

android:numColumns="auto_fit" android:padding="10dp"

android:verticalSpacing="20dp" android:horizontalSpacing="10dp"

android:columnWidth="75dp" android:stretchMode="columnWidth"

android:gravity="center" />

</LinearLayout>

 

4 这个是主activity 

 

package com.hao.test;

 

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.GridView;

 

public class Test extends Activity {

    public GridView gridView;

 

    String aString = "timu";

 

    private String[] name = {

            aString, aString, aString, aString, aString, aString, aString, aString

    };

 

    private int[] iconarray = {

            R.drawable.icon, R.drawable.icon, R.drawable.icon, R.drawable.icon, R.drawable.icon,

            R.drawable.icon, R.drawable.icon, R.drawable.icon

    };

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        init();

    }

 

    private void init() {

        // TODO Auto-generated method stub

        gridView = (GridView) findViewById(R.id.main_menu_grid_view);

        gridadapter adapter = new gridadapter(this, name, iconarray);

        gridView.setAdapter(adapter);

        gridView.setOnItemClickListener(new OnItemClickListener() {

 

            @Override

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                // TODO Auto-generated method stub

                switch (position) {

                    case 0:

                        new AlertDialog.Builder(Test.this)

 

                        .setTitle("Question")

 

                        .setMessage("0")

 

                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {

 

                            public void onClick(DialogInterface dialog, int whichButton) {

 

                                setResult(RESULT_OK);

 

                                finish();

 

                            }

 

                        })

 

                        .setNegativeButton("No", new DialogInterface.OnClickListener() {

 

                            public void onClick(DialogInterface dialog, int whichButton) {

 

                            }

 

                        })

 

                        .show();

                        break;

                    case 1:

                        new AlertDialog.Builder(Test.this)

 

                        .setTitle("Question")

 

                        .setMessage("1")

 

                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {

 

                            public void onClick(DialogInterface dialog, int whichButton) {

 

                                setResult(RESULT_OK);

 

                                finish();

 

                            }

 

                        })

 

                        .setNegativeButton("No", new DialogInterface.OnClickListener() {

 

                            public void onClick(DialogInterface dialog, int whichButton) {

 

                            }

 

                        })

 

                        .show();

                        break;

 

                    default:

                        break;

                }

            }

        });

    }

 

}

 


    
[3] 依据 String ID 取得所有字符内容
    来源: 互联网  发布时间: 2014-02-18
根据 String ID 取得所有字符内容
最近做项目涉及到的知识点:
效果图:




直接贴代码了

public String getAllText(Language show_text_language){
    StringBuffer stringBuffer = new StringBuffer();
    for (int i = 2; i <23; i++) {
        String name = "page_" + i + "_text_" + show_text_language.toString().toLowerCase()
            + "_" + 1;
//stringBuffer.append(getResources().getIdentifier(name, "string", getPackageName())).append("\n");
        stringBuffer.append(getResources().getString(getResources().getIdentifier(name, "string", getPackageName())));
        stringBuffer.append("\n");
}
    String allText = stringBuffer.toString();
    return allText;
    }

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
c/c++ iis7站长之家
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3