从零开始学androidIntent初步.四十.
生活随笔
收集整理的這篇文章主要介紹了
从零开始学androidIntent初步.四十.
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Intent意圖是android中非常重要的部分,他在Activity,service中有較為廣泛的應(yīng)用。
| 1 | public void startActivity(Intent intent) | 普通 | 啟動(dòng)一個(gè)Activity,并通過Intent傳送數(shù)據(jù) |
| 2 | public void startActivityForResult(Intent intent, int requestCode) | 普通 | 啟動(dòng)并接收另一個(gè)Activity程序回傳數(shù)據(jù),當(dāng)requestCode大于0才可以觸發(fā)onActivityResult() |
| 3 | public Intent getIntent() | 普通 | 返回啟動(dòng)當(dāng)前Activity程序的Intent |
| 4 | protected void onActivityResult(int requestCode, int resultCode, Intent data) | 普通 | 當(dāng)需要接收Intent回傳數(shù)據(jù)的時(shí)候覆寫此方法對回傳操作進(jìn)行處理 |
| 5 | public void finish() | 普通 | 調(diào)用此方法會(huì)返回之前的Activity程序,并自動(dòng)調(diào)用onActivityResult()方法 |
| 6 | public final Cursor managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) | 普通 | 處理返回的Cursor結(jié)果集 |
接下里用例子逐步講解
最簡單的Intent
主界面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"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="141dp"android:text="轉(zhuǎn)跳" /></RelativeLayout>轉(zhuǎn)跳界面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"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是第二屏界面" /></RelativeLayout>
Otner.java package com.example.intent1;import android.app.Activity; import android.os.Bundle; import android.text.style.SuperscriptSpan;public class Other extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.other); } }
接下來看一看可以傳遞數(shù)據(jù)的Intent
Other.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="TextView" /><Buttonandroid:id="@+id/button2"android:gravity="center_horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="獲取數(shù)據(jù)" /></LinearLayout>
java文件
Other.java
package com.example.intent2;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class Other extends Activity {Intent intent;private Button button;private TextView text; @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);super.setContentView(R.layout.other);button=(Button)this.findViewById(R.id.button2);text=(TextView)this.findViewById(R.id.textView1);intent=super.getIntent();//獲取意圖對象button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString info=intent.getStringExtra("info");//獲取傳遞的數(shù)據(jù)text.setText(info);//顯示數(shù)據(jù)}});} }
使用Intent傳遞并返回?cái)?shù)據(jù)
借助Intent實(shí)現(xiàn)成人身高體重測試程序 采用BMI 法 體重指數(shù) = 體重(公斤) 除 身高(米)的平方 kg/m2 正常體重 : 體重指數(shù) = 18 - 25 超重 : 體重指數(shù) = 25 - 30 輕度肥胖 : 體重指數(shù) > 30 中度肥胖 : 體重指數(shù) > 35 重度肥胖 : 體重指數(shù) > 40xml
package com.example.inten3;import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;public class MainActivity extends Activity { private Button resetInfo,getInfo; private EditText height,weight; private TextView detail;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);resetInfo=(Button)this.findViewById(R.id.button1);//重置信息按鈕getInfo=(Button)this.findViewById(R.id.button2);//獲取信息按鈕height=(EditText)this.findViewById(R.id.editText1);//身高輸入框weight=(EditText)this.findViewById(R.id.editText2);//體重輸入框detail=(TextView)this.findViewById(R.id.textView3);//信息顯示 // 重置按鈕的監(jiān)聽resetInfo.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub //將他們都設(shè)置為空weight.setText("");height.setText("");detail.setText("");} }); // 獲取信息按鈕的監(jiān)聽getInfo.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent =new Intent(MainActivity.this, Other.class);//創(chuàng)建意圖對象 // 增加附加信息 intent.putExtra("weight", Double.valueOf(weight.getText().toString())); intent.putExtra("height", Double.valueOf(height.getText().toString())); //設(shè)置啟動(dòng)并傳遞請求碼 startActivityForResult(intent, 1);} });} // 處理返回的信息@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubswitch (resultCode) {case RESULT_OK://設(shè)置信息MainActivity.this.detail.setText(data.getStringExtra("endMsg"));break;default:break;}}}Other.java package com.example.inten3;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;public class Other extends Activity {private Button returnMsg, resetbut;private TextView weightMsg, heightMsg;private Double weight, height;private String endMsg;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);super.setContentView(R.layout.other);returnMsg = (Button) this.findViewById(R.id.Otherbutton1);resetbut = (Button) this.findViewById(R.id.Otherbutton2);weightMsg = (TextView) this.findViewById(R.id.OthertextView1);heightMsg = (TextView) this.findViewById(R.id.OthertextView2);// 獲取意圖對象Intent intent = super.getIntent();// 獲得參數(shù)weight = intent.getDoubleExtra("weight", 0);height = intent.getDoubleExtra("height", 0);weightMsg.setText("您的體重:" + weight + "KG");heightMsg.setText("您的身高:" + height + "CM");returnMsg.setOnClickListener(new View.OnClickListener() {// 對傳入的數(shù)據(jù)進(jìn)項(xiàng)判斷和處理@Overridepublic void onClick(View v) {// TODO Auto-generated method stubDouble heightNum = height / 100;double endNum = weight / (heightNum * heightNum);if (endNum >= 18 && endNum <= 25) {endMsg = "您的身體很正常哦,繼續(xù)保持親。";} else if (endNum < 18) {endMsg = "親啊,不能總是減肥啊,您現(xiàn)在可是偏瘦哦,當(dāng)心身體";} else if (endNum > 25 && endNum <= 30) {endMsg = "您現(xiàn)在有一點(diǎn)胖哦,不過不要緊,要注意飲食哦";} else if (endNum > 30 && endNum <= 35) {endMsg = "親,您已經(jīng)進(jìn)入肥胖人群 了哦,注意鍛煉哦";} else if (endNum > 35) {endMsg = "額,你,你。。你怎么可以這樣,還不趕快減肥,當(dāng)心找不到對象哦";}// 將參數(shù)設(shè)置到intnet上Other.this.getIntent().putExtra("endMsg", endMsg);// 設(shè)置返回集,并設(shè)置返回接受碼Other.this.setResult(RESULT_OK, Other.this.getIntent());// 將dangqianActivity結(jié)束掉Other.this.finish();}});// 重新輸入監(jiān)聽resetbut.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 設(shè)置返回集合取消狀態(tài)碼Other.this.setResult(RESULT_CANCELED, Other.this.getIntent());// 結(jié)束當(dāng)前ActivityOther.this.finish();}});} }
學(xué)習(xí)了intent的基本用途,下節(jié)我們來學(xué)習(xí)Intent調(diào)用系統(tǒng)指令來完成一些其他操作
下節(jié)預(yù)報(bào):Intent進(jìn)階
總結(jié)
以上是生活随笔為你收集整理的从零开始学androidIntent初步.四十.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python excel模板 插件_py
- 下一篇: deepin桌面为什么那么卡_deepi