首页 > 编程知识 正文

android fragment使用(android移动应用基础教程答案)

时间:2023-05-05 09:35:03 阅读:75960 作者:544

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

一、写名字

当我们制作APP应用程序时,需要用户配置一些信息。 这就是通常所说的APP应用程序设置。

在Android系统中,由于系统本身的设置,用户体验和习惯深入人心,我们的APP应用程序也使用同样的设置页面

用户会更亲切更方便。 是吗? 我该怎么办呢? 这是根据本论文的主人公PreferenceActivity得出的。

二、详细设置打开安卓手机设置,如下图所示。

可以看到,整个页面分为几个组:无线网络、设备、个人、帐户和系统。 这个分组或分类就是首选项类别。

Wifi的右侧有一个开关。 此项目为checkbox首选项; 还有列表首选项和编辑首选项。

对于您的每个设置,都将保存在首选项中。 这就是setting的数据持久化。

三、如何实现自己的设置接下来要实现一个设置程序,看看你有多少首选项活动的基本知识。

首先,首选项活动是从API第1级加入的。 那么,Android3.0和更高版本有Fragment概念,同时也带来了首选项Fragment。 这是以后的事了,今天说个简单的吧。

此示例由两个活动组成。 第一个是MainAcitivity,程序启动后直接来这里,将Setting的各个设置内容用于现实。 第二个是Setting,它继承自PreferenceActivity,演示如何进行设置、数据存储操作等。 我只是想演示一下关于首选项活动的知识。 UI直接委托。 layout也使用了硬件代码。 官取其精华(如果有),只需去其糟粕。

1 .设置

首先介绍方法的首选项活动。 并不像常规活动一样,使用layout创建自己的接口。 使用自己的xml/preference.xml构建自己的接口,并将该xml添加到类中。

此示例显示三种常见的首选项,如以下代码所示:

preferenc.xml

? XML版本=' 1.0 '编码=' utf-8 '? preferencescreenxmlns 3360 Android=' http://schemas.Android.com/apk/RES/Android ' preferencecategoryandroid 3360 title=' first category ' listpreferenceandroid 3360 key=' list _ key ' Android 3360 e ' 60摘要=' list _ summary ' Android 3360 entries=' @ array/list _ pree est list _ preference ' Android 3360 dialog title=preferencecategorypreferencecategoryandroid : title=' second category ' edittextpreferenceandroid 3360 key=' edittext _ kkext ry=' edit summary ' Android : title=' edit title '/checkboxpreferenceandroid : key=' checkbox _ key ' Android 333650 droid

nce            android:key="num_key"            android:defaultValue="0"            android:summary="edit summary"            android:numeric="integer"            android:title="input number" /> </PreferenceCategory></PreferenceScreen>


我将这三项preference分成两组(PreferenceCategory),First Category和Second Category.


每一个Preference中的都会包含一个key(android:key),它的功能相当于普通layout中的id。
title:这一项的标题,字体比较大。

summary:摘要,标题下面的文字,字体较小。
defaultValue:为设置summary之前的默认值。

其中数组list_preference在array.xml中定义:

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="list_preference">        <item>Red</item>        <item>Blue</item>        <item>Green</item>      </string-array></resources>


Setting中是怎样加入这些UI信息呢?

public class Setting extends PreferenceActivity implements OnSharedPreferenceChangeListener {     private EditTextPreference mEtPreference;    private ListPreference mListPreference;    private CheckBoxPreference mCheckPreference;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromResource(R.xml.preferences);        initPreferences();    }        private void initPreferences() {     mEtPreference = (EditTextPreference)findPreference(Consts.EDIT_KEY);     mListPreference = (ListPreference)findPreference(Consts.LIST_KEY);     mCheckPreference = (CheckBoxPreference)findPreference(Consts.CHECKOUT_KEY);    }


此时,这个setting类就可以运行起来了。其实就是这么简单。也许你会问,我们设置了自己的偏好值,程序中如何获得呢?


我们需要注册一个Preference变化的Listener来监听这些事件。当我们做好设置后,Preference已经替我们做好了数据持久化了。
我们可以用sharedPreference来获得这些值。
下面来看:

    @Override    protected void onResume() {        super.onResume();        // Setup the initial values        SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();        mListPreference.setSummary(sharedPreferences.getString(Consts.LIST_KEY, ""));        mEtPreference.setSummary(sharedPreferences.getString(Consts.EDIT_KEY, "linc"));                // Set up a listener whenever a key changes        sharedPreferences.registerOnSharedPreferenceChangeListener(this);    }    @Override    protected void onPause() {        super.onPause();        // Unregister the listener whenever a key changes        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);    }         @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {        if (key.equals(Consts.EDIT_KEY)) {         mEtPreference.setSummary(                    sharedPreferences.getString(key, "20"));        } else if(key.equals(Consts.LIST_KEY)) {         mListPreference.setSummary(sharedPreferences.getString(key, ""));        } }}

到此,setting的功能就实现了。那么,在其他Activity中如何获得设置的值呢?也是用sharedPreference来实现:


看看我的MainActivity:

package com.linc.howtopreferenceactivity;import android.os.Bundle;import android.preference.PreferenceManager;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity { private Button btnSetting,btnShow; private TextView tvCheckout,tvList,tvEditText;  @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  initView(); } private void initView() {  btnSetting = (Button)findViewById(R.id.btn_setting);  btnShow = (Button)findViewById(R.id.btn_show);  btnSetting.setOnClickListener(buttonListener);  btnShow.setOnClickListener(buttonListener);    tvCheckout = (TextView)findViewById(R.id.tv_checkout);  tvList = (TextView)findViewById(R.id.tv_list);  tvEditText = (TextView)findViewById(R.id.tv_edittext); }  private OnClickListener buttonListener = new OnClickListener() {  @Override  public void onClick(View v) {   switch(v.getId()) {   case R.id.btn_setting:    startActivity(new Intent(MainActivity.this,Setting.class));    break;   case R.id.btn_show:    showSettingInfo();    break;   }  } };  private void showSettingInfo() {  SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);  tvCheckout.setText(settings.getBoolean(Consts.CHECKOUT_KEY, false)+"");  tvEditText.setText(settings.getString(Consts.EDIT_KEY, ""));  tvList.setText(settings.getString(Consts.LIST_KEY, "linc")); }  @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.main, menu);  return true; }}


当然,就像用edit text一样,我们可以限制输入的是文字还是数字或者是字母。就像上面代码:android:numeric="integer"


完整代码在此:HowToPreferenceActivity




            

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。