Android基本操作1(意圖使用、介面轉換、按鍵操作、文字傳遞)

2020-10-04 11:00:10

**

Android的activity轉換和內容傳送*

這裡跟大家分享一下最簡單和基礎的Android基本操作:activity轉換和按鍵事件、文字內容的傳輸。

按鍵事件的新增和activity轉換

按鍵事件的新增時介面轉換的必要判斷條件
首先先在activity佈局中新增按鈕。

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bt_anjian"
        android:text="anjian"/>

其次在ManinActivity中新增以下程式碼

 private Button bt_anjian;

在onCreate方法中寫上下面的程式碼

 bt_anjian=findViewById(R.id.bt_anjian);
        bt_anjian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               
            }
        });

但是啟動按鈕需要佈置一個意圖

 bt_anjian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //String zifu=ed_wenbenkuang.getText().toString().trim();
                Intent intent=new Intent(/*此介面*/MainActivity.this,/*你要開啟的介面*/SecondLayout.class);
                //intent.putExtra("zifu",zifu);
                startActivity(intent);
            }
        });

然後第二個activity Java程式碼如下

public class SecondLayout extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondlayout);
        /*TextView tv_jieguo=findViewById(R.id.tv_jieguo);
        Intent intent=getIntent();
        String zifu=intent.getStringExtra("zifu");
        tv_jieguo.setText(zifu);*/
    }

}

到這裡,介面轉換的工作還沒完成,還需要在清單檔案中新增
在這裡插入圖片描述
在其中設定

 <activity android:name=".SecondLayout">
 </activity>

到這裡頁面的轉換算是完成了。

文字內容跨activity傳遞

這個內容其實不算難,只需要注意意圖和控制元件id的關係就好了

mainactivity中控制元件寫法

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="請輸入"
        android:id="@+id/ed_wenbenkuang"/>

在這裡插入圖片描述

secondactivity中佈局程式碼

<?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">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_jieguo"
        android:text="結果顯示"/>

</LinearLayout>

然後我們回到MainActivity中的程式碼
在這裡插入圖片描述
定義全域性變數EditText ed_wenbenkuang

private EditText ed_wenbenkuang;
 public void onClick(View v) {
                String zifu=ed_wenbenkuang.getText().toString().trim();
                Intent intent=new Intent(MainActivity.this,SecondLayout.class);
                intent.putExtra("zifu",zifu);
                startActivity(intent);
            }
        });

關鍵語句
1

String zifu=ed_wenbenkuang.getText().toString().trim();//通過意圖拿到資料,然後轉換成字元,去掉空格,後面的rim()可要可不要。

2

intent.putExtra("zifu",zifu);//傳遞String 型別的zifu變數。

接著跳到
在這裡插入圖片描述

public class SecondLayout extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondlayout);
        TextView tv_jieguo=findViewById(R.id.tv_jieguo);
        Intent intent=getIntent();
        String zifu=intent.getStringExtra("zifu");
        tv_jieguo.setText(zifu);
    }

}

其中的關鍵語句
1獲取第二個activity的控制元件

TextView tv_jieguo=findViewById(R.id.tv_jieguo);

2拿到意圖

Intent intent=getIntent();

3 然後接收

 String zifu=intent.getStringExtra("zifu");//這裡要注意的是,「」裡的名字最好和上一個activity要傳過來的名字一致才行

最後

tv_jieguo.setText(zifu);

輸出結果就好了!

總程式碼塊

在這裡插入圖片描述下的程式碼

package com.example.one;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    private EditText ed_wenbenkuang;
    private Button bt_anjian;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ed_wenbenkuang=findViewById(R.id.ed_wenbenkuang);
        bt_anjian=findViewById(R.id.bt_anjian);
        bt_anjian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String zifu=ed_wenbenkuang.getText().toString().trim();
                Intent intent=new Intent(MainActivity.this,SecondLayout.class);
                intent.putExtra("zifu",zifu);
                startActivity(intent);
            }
        });


    }
}

在這裡插入圖片描述下的程式碼

package com.example.one;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class SecondLayout extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondlayout);
        TextView tv_jieguo=findViewById(R.id.tv_jieguo);
        Intent intent=getIntent();
        String zifu=intent.getStringExtra("zifu");
        tv_jieguo.setText(zifu);
    }

}

佈局程式碼

下的程式碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="請輸入"
        android:id="@+id/ed_wenbenkuang"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bt_anjian"
        android:text="anjian"/>


</LinearLayout>

在這裡插入圖片描述下的程式碼

<?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">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_jieguo"
        android:text="結果顯示"/>

</LinearLayout>

結束~~~~~~~~