天天看點

Android學習筆記--Activity傳值跳轉

安卓的Activity相當于是網頁的各個窗體,我們經常需要在多個窗體間進行傳值切換窗體,是以,這個必須要掌握。

操作步驟:

步驟一:建立一個布局檔案,如:loginactivity.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" >
    
	<TextView
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/futips"
	     />
	
	<TextView
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:id="@+id/msgbox"
	     />
</LinearLayout>
           

步驟二:修改strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">發送http請求</string>
    <string name="hello_world">Hello world!</string>
    <string name="toptips">測試發送Http請求</string>
    <string name="action_settings">Settings</string>
	<string name="baseurl">http://192.168.1.101:8090/</string>
	<string name="nametips">工号或者手機号</string>
	<string name="pwdtips">登入密碼</string>
	<string name="btntxt">登入</string>
	<string name="futips">我是第二個Activity</string>
</resources>
           

步驟三:建立Activity類,FuActivity.java,代碼如下

package com.example.httpqingqiu.Activity;

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

import com.example.httpqingqiu.R;

public class FuActivity extends Activity {
	private TextView msgbox;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.loginactivity);
		
		Intent it=getIntent();
		Bundle bun=it.getExtras();
		String userno=bun.getString("userno");
		String pwd=bun.getString("pwd");
		msgbox=(TextView)this.findViewById(R.id.msgbox);
		msgbox.setText("您的使用者名是:"+userno+",密碼是:"+pwd);
	}
}
           

步驟四:編寫第一個窗體的布局檔案activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    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="com.example.httpqingqiu.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/toptips" />
	
    <TextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/nametips"
        />
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtuserno"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/pwdtips"
        
         />
    
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtpwd"
        android:inputType="textPassword"
        />
    
    <Button 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnsend"
        android:text="@string/btntxt"
        />
</LinearLayout>
           

步驟五:編寫第一個窗體的背景代碼

package com.example.httpqingqiu;

import com.example.httpqingqiu.Activity.FuActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.*;
public class MainActivity extends Activity {

	private EditText txtuserno;
	private EditText txtpwd;
	private Button btnsend;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		txtuserno=(EditText)this.findViewById(R.id.txtuserno);
		txtpwd=(EditText)this.findViewById(R.id.txtpwd);
		btnsend=(Button)this.findViewById(R.id.btnsend);
		
		btnsend.setOnClickListener(new ButtonOnClick());
	}

	
	private class ButtonOnClick implements View.OnClickListener{

		@Override
		public void onClick(View v) {
			String userno=txtuserno.getText().toString();
			String pwd=txtpwd.getText().toString();
			if(userno.trim().equals(""))
			{
				Toast.makeText(getApplicationContext(), "請填寫工号或手機号", Toast.LENGTH_LONG).show();
				return;
			}
			if(pwd.trim().equals(""))
			{
				Toast.makeText(getApplicationContext(), "請填寫工号或手機号", Toast.LENGTH_LONG).show();
				return;
			}
			Intent it=new Intent();
			it.setClass(MainActivity.this, FuActivity.class);
			it.putExtra("userno", userno);
			it.putExtra("pwd", pwd);
			startActivity(it);
			//startActivityForResult(it,10);
			MainActivity.this.finish();
		}
		
	}
}
           

步驟六:在清單檔案AndroidManifest.xml中注冊第二個activity

<activity

            android:name="com.example.httpqingqiu.Activity.FuActivity"

            android:label="@string/app_name"

            >

        </activity>

如果IDE提示用$代替.,千萬别這樣做,因為有些低版本的手機不識别