Android初步
Android工具以及简单监听事件 6.28
1.Android开发时,最初对功能进行设计,设计layout,对界面布局。
第一个界面为登录,注册界面:
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的注册。
可以看到点击注册后:
2.设计注册界面secondfile.xml
特别注意,命名,不管是首字母还是中间的字母一定不能够是大写!
具体代码:这里用到相对布局,真的虽然拖着很方便,但是对于每个构件的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,这里主要是图片设为手机壁纸的功能。
这部分功能今天就没有实现完成了,主要是将图片读入并设置为桌面。
由于涉及到权限问题,所以注册表中必须注意加入
<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().
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28