android studio實現Intent通信-------牛刀小試


概述:

本博文實現一種小程序,兩個Activity單向通信,主從關系,MainActivty 頁面布局一個EditText+Button,實現邏輯是單擊按鈕將信息發送給另外一個DisplayMessageActivity,DisplayMessageActivty頁面布局有一個TextView內容為EditText傳過來的。整個就是這么簡單

實現:

1創建空Activty項目,命名為IntentDemo,頁面布局

  1.1為了實現單擊按鈕響應事件,可以有兩種方法,第一種是這樣的

public static final String tag="TEST";
@Override 
protected void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    Button button=(Button)findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener(){
          @Override
           public void onClick(View view)
           {
                 EditText edittext=(EditText)findViewById(R.id.editText);
                 Intent intent=new Intent(this,DisplayMessageActivtiy.class);
                 String message=edittext.getText().toString();
                 intent.putExtra(tag,message);
                 startActivty(intent);
            }    
    });
}

 也就是說直接在onCreate函數里面實現了監聽按鈕的方法

第二種方法是自己實現一個函數,然后與按鈕單擊事件關聯起來

 

這個函數在MainActivtiy.java里面實現如下:

public void sendMessage(View view)
    {
        Intent intent=new Intent(this,DisplayMessageActivity.class);
        EditText edittext=(EditText)findViewById(R.id.editText);
        String message=edittext.getText().toString();
        intent.putExtra(EXTRA_MESSAGE,message);
        startActivity(intent);
    }

  可以對比一下,要讓系統將此函數視為與 android:onClick 屬性兼容,需要這些詳細信息。具體來說,函數必須聲明以下內容:

  • 公共訪問
  • 空返回值
  • View作為唯一參數(它是之前點擊的 View對象)

2 創建一個空Activity的Activtiy

我們選擇empty activity ,然后系統自動做三件事:

① 創建DisplayMessageActivity.java

② 創建activity_display_message.xml文件

③在AndroidManifest.xml文件的<application>元素下自動添加<activity>子元素,內容如下

手動添加的內容是為了添加向上導航


DisplayMessageActivity應用不是主入口的每個屏幕(所有不是主屏幕的屏幕)都應提供導航,以便用戶在應用欄中點按“向上”按鈕后可以返回應用層次結構中的邏輯父屏幕。

需要做的全部工作是在 AndroidManifest.xml文件中聲明哪個 Activity 是邏輯父項。因此,打開 app > manifests > AndroidManifest.xml 處的文文件,找到 DisplayMessageActivity 的 <activity> 標記。

3編寫邏輯代碼

在DisplayMessageActivity的onCreate函數中提取處intent的Extra信息,並寫入到TextView中

 1 @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_display_message);
 5         Intent intent=getIntent();
 6         String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
 7         TextView textview=(TextView)findViewById(R.id.textView);
 8         textview.setText(message);
 9         Log.i(tag,"DisplayMessageActivity:(1)onCreate()");
10     }

最終效果截圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM