編輯:關於Android編程
Intent意圖是android中非常重要的部分,他在Activity,service中有較為廣泛的應用。
1 public void startActivity(Intent intent) 普通 啟動一個Activity,並通過Intent傳送數據 2 public void startActivityForResult(Intent intent, int requestCode) 普通 啟動並接收另一個Activity程序回傳數據,當requestCode大於0才可以觸發onActivityResult() 3 public Intent getIntent() 普通 返回啟動當前Activity程序的Intent 4 protected void onActivityResult(int requestCode, int resultCode, Intent data) 普通 當需要接收Intent回傳數據的時候覆寫此方法對回傳操作進行處理 5 public void finish() 普通 調用此方法會返回之前的Activity程序,並自動調用onActivityResult()方法 6 public final Cursor managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 普通 處理返回的Cursor結果集
接下裡用例子逐步講解
最簡單的Intent
主界面xml
package com.example.intent1; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) this.findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, Other.class);//創建Intent 對象 startActivity(intent);//開啟intent MainActivity.this.finish();//使當前Activity結束 } }); } }
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 stub super.onCreate(savedInstanceState); setContentView(R.layout.other); } }
接下來看一看可以傳遞數據的Intent
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPjxwcmUgY2xhc3M9"brush:java;">
Other.xml
java文件
package com.example.intent2; import android.os.Bundle; import android.R.integer; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private Button button; private EditText info; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)this.findViewById(R.id.button1); info=(EditText)this.findViewById(R.id.edit); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,Other.class);//設置意圖 intent.putExtra("info", info.getText().toString());//為意圖增加附加信息 startActivity(intent);//開始意圖 MainActivity.this.finish();//終止當前Ativity } }); } }
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; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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() { @Override public void onClick(View v) { // TODO Auto-generated method stub String info=intent.getStringExtra("info");//獲取傳遞的數據 text.setText(info);//顯示數據 } }); } }
使用Intent傳遞並返回數據
借助Intent實現成人身高體重測試程序采用BMI 法 體重指數 = 體重(公斤) 除 身高(米)的平方 kg/m2 正常體重 : 體重指數 = 18 - 25 超重 : 體重指數 = 25 - 30 輕度肥胖 : 體重指數 > 30 中度肥胖 : 體重指數 > 35 重度肥胖 : 體重指數 > 40
xml
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; @Override protected 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);//信息顯示 // 重置按鈕的監聽 resetInfo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //將他們都設置為空 weight.setText(""); height.setText(""); detail.setText(""); } }); // 獲取信息按鈕的監聽 getInfo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent =new Intent(MainActivity.this, Other.class);//創建意圖對象 // 增加附加信息 intent.putExtra("weight", Double.valueOf(weight.getText().toString())); intent.putExtra("height", Double.valueOf(height.getText().toString())); //設置啟動並傳遞請求碼 startActivityForResult(intent, 1); } }); } // 處理返回的信息 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (resultCode) { case RESULT_OK: //設置信息 MainActivity.this.detail.setText(data.getStringExtra("endMsg")); break; default: break; } } }
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; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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(); // 獲得參數 weight = intent.getDoubleExtra("weight", 0); height = intent.getDoubleExtra("height", 0); weightMsg.setText("您的體重:" + weight + "KG"); heightMsg.setText("您的身高:" + height + "CM"); returnMsg.setOnClickListener(new View.OnClickListener() { // 對傳入的數據進項判斷和處理 @Override public void onClick(View v) { // TODO Auto-generated method stub Double heightNum = height / 100; double endNum = weight / (heightNum * heightNum); if (endNum >= 18 && endNum <= 25) { endMsg = "您的身體很正常哦,繼續保持親。"; } else if (endNum < 18) { endMsg = "親啊,不能總是減肥啊,您現在可是偏瘦哦,當心身體"; } else if (endNum > 25 && endNum <= 30) { endMsg = "您現在有一點胖哦,不過不要緊,要注意飲食哦"; } else if (endNum > 30 && endNum <= 35) { endMsg = "親,您已經進入肥胖人群 了哦,注意鍛煉哦"; } else if (endNum > 35) { endMsg = "額,你,你。。你怎麼可以這樣,還不趕快減肥,當心找不到對象哦"; } // 將參數設置到intnet上 Other.this.getIntent().putExtra("endMsg", endMsg); // 設置返回集,並設置返回接受碼 Other.this.setResult(RESULT_OK, Other.this.getIntent()); // 將dangqianActivity結束掉 Other.this.finish(); } }); // 重新輸入監聽 resetbut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 設置返回集合取消狀態碼 Other.this.setResult(RESULT_CANCELED, Other.this.getIntent()); // 結束當前Activity Other.this.finish(); } }); } }
系統指令來完成一些其他操作
下節預報:Intent進階
直接上效果圖 功能特色: 1、可以設置刮開後顯示文字或圖片 2、可以統計已刮開區域所占百分比 Demo下載地址:RubberDem
本文實例講述了Android ScrollView只能添加一個子控件問題解決方法。分享給大家供大家參考,具體如下:有下面一段代碼<?xml version=
手機qq聊天字體用膩了怎麼修改,字體顏色又是怎麼修改的呢?具體操作如下,一起來看看吧!如何修改手機qq字體顏色用手機管理器進入 E:System→
標識符和關鍵字 基本數據類型 常量與變量 運算符 數據類型轉換 注釋及代碼編寫規范等1、標識符和關鍵字通俗的講,標識符就是程序員自己起的一個名稱(包括變量名,類名,方法名