Android初步


 Android工具以及简单监听事件   6.28



1.Android开发时,最初对功能进行设计,设计layout,对界面布局。
第一个界面为登录,注册界面:

 Android初步

activity_main.xml代码如下:使用的是线性布局,用于用户的登录以及跳转注册。用户可通过点击“注册”,系统弹出“跳转至注册页面”提示,并且通过Intent跳转至Second的Activity。

<LinearLayout 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:orientation="vertical"
    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.myone.MainActivity" 
    android:background="@drawable/bj">

 <TextView
     
     android:id="@+id/nametext"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
     android:text="用户名"
     android:textSize="22dp"
     android:layout_marginTop="10dp"
     />

 <EditText
         android:hint="注意不要以数字开头"
     android:id="@+id/nvalue"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:inputType="textPersonName" >
 </EditText>
 
 <TextView 
     android:id="@+id/password"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="密码"
     android:textSize="22dp"
     />
 <EditText 
     android:id="@+id/pvalue"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:inputType="textPassword"
     android:hint="请输入5-8位密码"
     />

 <LinearLayout
     android:layout_marginTop="100px"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_gravity="center" >
    <Button
     android:id="@+id/login"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="登录"
     android:textColor="#000000"
     android:layout_weight="1" 
     android:layout_marginRight="10dp"/>

 <Button
     android:id="@+id/regist"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="注册"
     android:textColor="#000000"
     android:layout_weight="1"
      />
 
 </LinearLayout>

 
</LinearLayout>

该界面MainActivity.java代码如下:

package com.example.myone;

import javax.security.auth.PrivateCredentialPermission;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputFilter.LengthFilter;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

	private Button login;
	private Button regist;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		login=(Button)findViewById(R.id.login);
		regist=(Button)findViewById(R.id.regist);
		regist.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(MainActivity.this,Second.class);
				startActivity(intent);
				Toast.makeText(MainActivity.this,"跳转至注册页面", 100).show();
			}
		});
		login.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent i2=new Intent(MainActivity.this,Third.class);
				startActivity(i2);
			}
		});
	}
	
}

在此,为了实现跳转,必须要在注册表中加入Activity的注册。

可以看到点击注册后:
Android初步
 2.设计注册界面secondfile.xml

特别注意,命名,不管是首字母还是中间的字母一定不能够是大写!


Android初步

具体代码:这里用到相对布局,真的虽然拖着很方便,但是对于每个构件的id命名实在尴尬,我觉得还是线性布局比较清楚些

<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="com.example.myone.MainActivity"
     android:background="@drawable/bj" >

    <TextView
        android:id="@+id/wel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="欢迎注册"
        android:textColor="#000000"
        android:textSize="45dp"
        
     />

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/wel"
        android:layout_below="@+id/wel"
        android:layout_marginTop="44dp"
        android:textSize="20dp"
        android:text="用户名" />

    <EditText
        android:id="@+id/namevalue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/username"
        android:layout_alignBottom="@+id/username"
        android:layout_alignRight="@+id/wel"
        android:ems="10"
        android:inputType="textPersonName" />

    
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/username"
        android:layout_alignTop="@+id/password"
        android:text="密码"
        android:textSize="20dp" />

    <EditText
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/namevalue"
        android:layout_below="@+id/namevalue"
        android:layout_marginTop="29dp"
        android:ems="10"
        android:inputType="textPassword" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/se"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/TextView01"
        android:layout_below="@+id/password"
        android:layout_marginTop="29dp"
        android:text="性别"
        android:textSize="20dp" />

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/se"
        android:layout_alignBottom="@+id/se"
        android:layout_alignLeft="@+id/password"
        android:layout_marginLeft="22dp"
        android:checked="true"
        android:text="男" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/se"
        android:layout_marginLeft="44dp"
        android:layout_toRightOf="@+id/radioButton1"
        android:text="女" />

    <Button
        android:id="@+id/finish"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="完成" />

</RelativeLayout>

 3.点击完成,就可以跳转到登录了,这里不展示。

Second.java

package com.example.myone;

import org.apache.http.NameValuePair;

import com.example.myone.R.id;

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

public class Second extends Activity{
	private Button finish;
	private EditText namevalue;
	private EditText password;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.secondfile);
		finish=(Button)findViewById(R.id.finish);
		password=(EditText)findViewById(R.id.password);
		namevalue=(EditText)findViewById(R.id.namevalue);
		finish.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(Second.this, "用户名:"+namevalue.getText().toString()+"密码"+password.getText().toString(),100).show();
				Intent i1=new Intent(Second.this,MainActivity.class);
				startActivity(i1);
			}
		});
	}
}

4.用户输入账号密码登录之后,可以跳转到第三个Activity,这里主要是图片设为手机壁纸的功能。


Android初步
 这部分功能今天就没有实现完成了,主要是将图片读入并设置为桌面。

由于涉及到权限问题,所以注册表中必须注意加入

<uses-permission
    android:name="android.permission.SET_WALLPAPER"/>

 Third.java

package com.example.myone;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.ImageView;
import android.widget.TextView;

public class Third extends Activity{
	
	private TextView text=null;
	private ImageView image=null;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.func);
		
		image=(ImageView)findViewById(R.id.image);
		image.setOnLongClickListener(new LongClick());
	}
	private class LongClick implements OnLongClickListener{

		@Override
		public boolean onLongClick(View arg0) {
			// TODO Auto-generated method stub
			try {
				Third.this.clearWallpaper();//去除原来的壁纸
				Third.this.setWallpaper(Third.this.image.getResources().openRawResource(R.drawable.back));
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			return false;
		}
		
	}
}

 这部分是长按来监听的,所以事件监听器和之前的不一样。通过使用一个内部类,来把所有监听事件都做成一个接口来调用,的确方便不少。这里使用的是LongClick(),取代了以前的View.OnLongClickListener().

相关推荐