日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓第六夜 凡高的自画像

發布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓第六夜 凡高的自画像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

?

在上一講中,我已經制作了一個簡單的Android應用。項目的主要文件包括:

  • MainActivity.java
  • activity_main.xml

在這一講,我將拓展應用的功能,從而允許用戶輸入個人信息。

?

《自畫像》,凡高。凡高一生不得志,精神更是越來越差。在割掉自己的耳朵一部分后,畫家給自己留下了這幅自畫像。在當時,這幅畫依然是無人問津。

?

描述

我將創建一個新的Activity。這個界面允許用戶輸入本人的姓名和博客地址。這些輸入數據將在會保存起來。在主界面中再次調出數據,并顯示。相關知識點包括:

  • 啟動Activity。利用Intent,啟動一個新的Activity。
  • 文本輸入。增加EditText輸入欄,讓用戶輸入文本信息。
  • 數據存儲。將數據存入SharedPreferences,跨Activity讀取。

?

創建新的項目文件

我們將在應用項目中增加新的文件。在ADT的文件導航欄中右鍵點擊文件夾,選擇New->Other后,可以得到下面的對話框:

?

你可以在這里選擇想要創建的新文件的類型,比如XML文件,Java文件等。安卓會根據你選擇的類型,做一些默認設置。比如選擇Android Activity后,在AndroidManifest.xml中自動注冊該Activity,從而省去用戶的麻煩。?

?

新Activity的界面

我們要設計一個用于輸入姓名和博客地址的安卓界面。由于姓名和博客地址都是字符串類型,因此我們可以借助EditText類的View元素,來增加字符串類型的輸入欄。我們還需要提交功能。按鈕是最容易想到的方式。這里,我沒有使用按鈕,而是為一個TextView增加點擊事件監聽。

?

這個視圖的XML布局文件為activity_self_edit.xml,如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin" ><LinearLayoutandroid:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content" ><LinearLayoutandroid:id="@+id/input1"android:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Name" /><EditTextandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="full name" /></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/input1" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Blog Address" /><EditTextandroid:id="@+id/url"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="url" /></LinearLayout></LinearLayout><TextViewandroid:id="@+id/submit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:text="Submit" /> </RelativeLayout>

這里使用了RelativeLayout來布局。我們可以在該布局下,說明元素的相對位置。TextView就使用了layout_alignParentBottom屬性,來說明它的下邊緣將對齊母元素的下邊緣。此外,這里還嵌套使用了LinearLayout。

?

用SharedPreferences存儲數據

我們現在來為視圖編寫SelfEditActivity,以增加數據存儲功能。在提交數據后,這個Activity將通過EditText的getText()方法獲取字符輸入。提交的字符串將使用SharedPreferences存儲起來。

SharedPreferences以鍵值對(key-value pair)的方式存儲數據。在寫入時,我們需要說明數據對應的鍵。在讀取時,我們將根據鍵,來獲得對應的數據值。數據可以在整個應用范圍內調用。特定權限下,SharedPrefereces可以跨應用使用。SharedPreferences簡單易用,適合存儲少量的、結構松散的信息。

package me.vamei.vamei;import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView;public class SelfEditActivity extends Activity {private EditText nameInput;private EditText urlInput;private TextView tvSubmit;private SharedPreferences sharedPref;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_self_edit);// find viewstvSubmit = (TextView) findViewById(R.id.submit);nameInput = (EditText) findViewById(R.id.name);urlInput = (EditText) findViewById(R.id.url);sharedPref = this.getSharedPreferences("me.vamei.vamei", Context.MODE_PRIVATE);// submittvSubmit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = nameInput.getText().toString();String url = urlInput.getText().toString();// Save to Shared PreferencesSharedPreferences.Editor editor = sharedPref.edit();editor.putString("name", name);editor.putString("url", url);editor.commit();// End Current ActivitySelfEditActivity.this.finish();}});} }

Context對象的getSharedPreferences()獲得SharedPrerences。第一個參數"me.vamei.vamei"說明了該SharedPreferences對象所在的文件名,第二個參數說明了權限,即只能該應用范圍內私用。使用SharedPreferences.Editor類對象寫入數據時,我們調用了putString()方法,以存儲字符串類型的數據值。commit()方法將執行寫入。

最后,Activity Context的finish()方法結束當前Activity。

?

從一個Activity啟動另一個Activity

我現在要把MainActivity和新的SelfEditActivity用Intent串聯起來。MainActivity對應的布局為activity_main.xml,如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent" ><TextView android:id="@+id/welcome"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/author"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Edit Profile" /> </LinearLayout>

TextView用于顯示用戶信息。Button用于啟動上面定義的SelfEditActivity。

?

修改MainActivity。相對于上一講,這里主要增加了兩個功能。一個功能是監聽按鈕,在按鈕點擊后啟動SelfEditActivity。另一個功能是從SharedPreferences中獲得存儲的鍵值,即用戶名,再將用戶名信息更新到界面上。

package me.vamei.vamei;import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;public class MainActivity extends Activity {private SharedPreferences sharedPref;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sharedPref = this.getSharedPreferences("me.vamei.vamei", Context.MODE_PRIVATE);Button btn = (Button) findViewById(R.id.author);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View view) {Intent intent = new Intent(MainActivity.this, SelfEditActivity.class);MainActivity.this.startActivity(intent);}});}@Overrideprotected void onResume() {super.onResume();TextView nameView = (TextView) findViewById(R.id.welcome);// retrieve content from shared preference, with key "name"String welcome = "Welcome, " + sharedPref.getString("name", "unknown") + "!";nameView.setText(welcome);} }

Intent構造器的第一個參數說明了Context,第二個參數顯式的說明了想要啟動的功能單元,即SelfEditActivity類。startActivity()方法將根據intent參數,創建并啟動對應的功能單元。該方法執行后,新的SelfEditActivity將壓入棧頂,成為激活的Activity,而MainActivity將暫停。

另一方面,我把數據讀取部分放入了onResume()方法。根據安卓的規定,MainActivity第一次運行,以及每次從暫停中復蘇時,都會調用該方法。用戶在SelfEditActivity修改返回后,就可以立即獲得最新的數據。使用getString()方法,從SharedPreferences對象獲得鍵位"name"的值。如果"name"鍵不存在,將返回默認值"unknown"。

onResume()

?

最后,用setText()方法,把新的數據加載到視圖的TextView中。

?

運行

在"Edit Profile"中輸入用戶信息,提交后返回主頁面,效果如下:

總結

RelativeLayout, EditText

Intent, startActivity()

getSharedPreferences(), putString, getString()

onResume()

?

歡迎繼續閱讀“Java快速教程”系列文章?

總結

以上是生活随笔為你收集整理的安卓第六夜 凡高的自画像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女隐私无遮挡免费 | 麻豆成人在线视频 | 国产精品久久99 | 国内精品久久久久久久久 | 荷兰av| 久久精品中文 | 国产一区二区三区在线免费 | 亚色一区 | 少妇真人直播免费视频 | 天天爽天天爱 | 日韩美一区二区三区 | 一本色道久久综合亚洲精品图片 | 日本在线加勒比 | 日韩av在线影院 | 国产区精品 | 91日韩视频 | 午夜精品一区二区在线观看 | 国产亚洲性欧美日韩在线观看软件 | 午夜免费网址 | 97精品自拍| 欧美午夜小视频 | 免费在线观看黄 | 欧美日韩成人一区 | 免费中文字幕 | 天堂亚洲 | 国产成人一区二区三区视频 | 国产日韩欧美综合在线 | 中文无码av一区二区三区 | 91丨国产丨捆绑调教 | 蜜桃av噜噜一区二区三区网址 | 哪里看毛片 | 欧美黄大片 | 玖玖爱在线观看 | 国产精品久久久久久久成人午夜 | 国产精品99久久久久久一二区 | 波多野结衣高清在线 | 色小说在线 | 天堂av观看 | 欧美黄色高清视频 | 尤物一区二区 | 我爱52av| 国产精品美女在线 | 男女黄色网 | 免费一区二区三区视频在线 | 五月开心激情网 | 亚洲欧洲视频 | 国产一区二区三区视频播放 | 国产高清欧美 | 亚洲精品爱爱 | 伊人久久大香线蕉成人综合网 | 久久免费视频3 | 日韩电影第一页 | 久久精品亚洲一区二区 | 国产亚洲一区二区三区不卡 | 国产夜色精品一区二区av | 丰满少妇被猛烈进入高清播放 | 黑人一区二区 | 亚洲欧美日本一区二区三区 | 一区二区三区毛片 | 97日日夜夜 | 黑白配高清国语在线观看 | 欧美久久久久久久 | 欧美 日韩 中文 | 日韩高清在线观看 | 免费在线观看黄视频 | 日韩精品自拍 | 激情婷| 在线观看国产 | 国产白嫩美女无套久久 | 奇米色777 | 亚洲人视频 | 日韩三级麻豆 | 日本精品成人 | 人成免费在线视频 | 91网在线播放 | 日日骚av| www.操操操 | 国产精品不卡在线 | 国产又色又爽又黄又免费 | 少妇高潮一区二区三区在线 | 亚洲区视频 | 国产精品自产拍在线观看 | 最新欧美日韩 | 久久黄色小说 | 久久无码视频网站 | 成人免费一级片 | 在线观看黄色免费网站 | 日韩福利视频在线观看 | 亚洲精品少妇 | 亚洲一区在线播放 | 久久久精品中文字幕麻豆发布 | 一区二区三区免费高清视频 | 亚洲一区二区日韩欧美 | 欧美超碰在线 | 国产精品天天狠天天看 | 黄色av网站在线播放 | 秋霞在线观看视频 | 打屁股av | 人人人妻人人澡人人爽欧美一区 |