安卓怎么让button不能点击设置当输入数字后可点击button

10616人阅读
Android(10)
Android程序流程:
首先解析AndroidManifest.xml----&根据&application&标签显示应用程序图标和标签----&找到第一个Activity(根据包中的类名),进行应用操作 ----&类中对R.java文件进行操作(其中包括布局文件,按钮等)
该例子的文件结构图如下:
AndroidManifest.xml(新建的Activity一定要在这里注册)
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="/apk/res/android"
&&&&& package="android.proper"
&&&&& android:versionCode="1"
&&&&& android:versionName="1.0"&
&&& &uses-sdk android:minSdkVersion="4" /&
&&& &application android:icon="@drawable/icon" android:label="@string/app_name"&
&&&&&&& &activity android:name=".Activity_01Activity"
&&&&&&&&&&&&&&&&& android:label="@string/app_name"&
&&&&&&&&&&& &intent-filter&
&&&&&&&&&&&&&&& &action android:name="android.intent.action.MAIN" /&
&&&&&&&&&&&&&&& &category android:name="android.intent.category.LAUNCHER" /&
&&&&&&&&&&& &/intent-filter&
&&&&&&& &/activity&
&&& &activity android:name=".OtherActivity" android:label="@string/other"/&
&&& &/application&
&/manifest&
Activity_01Activity.java
package android.
import android.app.A
import android.content.I
import android.os.B
import android.view.V
import android.widget.B
public class Activity_01Activity extends Activity {
&&&&&&&& private Button myButton=
&&&&&&&& //一个Activity就是一个类,继承了Activity这个类
&&&&&&&& //需要复写onCreate方法
&&&&&&&& //每一个Activity方法都要在AndroidManifest.xml中进行配置。
&&&&&&&& //为每一个Activity添加控件
&&&&&&&& //通常一个Activity对应一个layout.main布局文件
&&& /** Called when the activity is first created. */
&&& @Override
&&& public void onCreate(Bundle savedInstanceState) {
&&&&&&& super.onCreate(savedInstanceState);
&&&&&&& setContentView(R.layout.main);
&&&&&&& myButton=(Button)findViewById(R.id.myButton);
&&&&&&& myButton.setText("我的第一个button"+"/n"+"按钮");
&&&&&&& myButton.setOnClickListener(new MyButtonListener());
&&& class MyButtonListener implements android.view.View.OnClickListener{
&&&&&&&&&&&&&&&&&& public void onClick(View v) {
&&&&&&&&&&&&&&&&&&&&&&&&&&& // TODO Auto-generated method stub
&&&&&&&&&&&&&&&&&&&&&&&&&&& Intent intent=new Intent();
&&&&&&&&&&&&&&&&&&&&&&&&&&& //Intent可以在不同的应用程序的Activity发送数据
&&&&&&&&&&&&&&&&&&&&&&&&&&& intent.putExtra("testIntent", "Robin");
&&&&&&&&&&&&&&&&&&&&&&&&&&& intent.setClass(Activity_01Activity.this, OtherActivity.class);//从哪里跳到哪里
&&&&&&&&&&&&&&&&&&&&&&&&&&& Activity_01Activity.this.startActivity(intent);
&&&&&&&&&&&&&&&&&& }
OtherActivity.java
package android.
import android.app.A
import android.content.I
import android.os.B
import android.widget.TextV
public class OtherActivity extends Activity{
&&&&&&&& private TextView myTextView=
&&&&&&&& @Override
&&&&&&&& protected void onCreate(Bundle savedInstanceState) {
&&&&&&&&&&&&&&&&&& // TODO Auto-generated method stub
&&&&&&&&&&&&&&&&&& super.onCreate(savedInstanceState);
&&&&&&&&&&&&&&&&&& setContentView(R.layout.other);
&&&&&&&&&&&&&&&&&& Intent intent=getIntent();
&&&&&&&&&&&&&&&&&& String value=intent.getStringExtra("testIntent");
&&&&&&&&&&&&&&&&&& myTextView=(TextView)findViewById(R.id.myTestView);
&&&&&&&&&&&&&&&&&& myTextView.setText(value);
&&&&&&&& }
package android.
public final class R {
&&& public static final class attr {
&&& public static final class drawable {
&&&&&&& public static final int icon=0x7f020000;
&&& public static final class id {
&&&&&&& public static final int myButton=0x7f050000;
&&&&&&& public static final int myTestView=0x7f050001;
&&& public static final class layout {
&&&&&&& public static final int main=0x7f030000;
&&&&&&& public static final int other=0x7f030001;
&&& public static final class string {
&&&&&&& public static final int app_name=0x7f040001;
&&&&&&& public static final int hello=0x7f040000;
&&&&&&& public static final int other=0x7f040002;
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
&&& android:orientation="vertical"
&&& android:layout_width="fill_parent"
&&& android:layout_height="fill_parent"
&&& android:id="@+id/myButton"
&&& android:layout_width="fill_parent"
&&& android:layout_height="wrap_content"
&/LinearLayout&
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
&&& android:orientation="vertical"
&&& android:layout_width="fill_parent"
&&& android:layout_height="fill_parent"
&TextView&
&&& android:id="@+id/myTestView"
&&& android:layout_width="fill_parent"
&&& android:layout_height="wrap_content"
&/LinearLayout&
string.xml
&?xml version="1.0" encoding="utf-8"?&
&resources&
&&& &string name="hello"&Hello World, Activity_01Activity!&/string&
&&& &string name="app_name"&Activity_01&/string&
&&& &string name="other"&otherActivity&/string&
&/resources&
结果如下图所示:
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:522333次
积分:5380
积分:5380
排名:第4544名
原创:64篇
转载:41篇
评论:82条
(1)(1)(1)(3)(4)(1)(1)(2)(4)(1)(1)(1)(1)(4)(1)(2)(5)(1)(12)(3)(1)(1)(2)(8)(5)(3)(1)(5)(5)(1)(2)(2)(4)(2)(6)(7)2014年6月 移动开发大版内专家分月排行榜第一2014年3月 移动开发大版内专家分月排行榜第一
2014年11月 移动开发大版内专家分月排行榜第二2014年4月 移动开发大版内专家分月排行榜第二2014年2月 移动开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。String filename =listData.get(position).get(&file&).toString(); //为说明该值是动态,下个Activity需要用到该值做逻辑处理。
btnfive3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.putExtra(&name&, filename);
intent.setClass(mContext,
Download.class);
startActivity(intent);
那页面不是要复制以上代码,为例如btnfour1 ,btnOne1,等我自己的理解,应该不需要,所以编写以下的代码Java code
class MyBtn implements OnClickListener{
public void onClick(View v) {
public void onClick(View v,String file) {
OnClickListener myDialogOnClick = new MyBtn() {
public void onClick(View v,String file) {
Intent intent = new Intent();
intent.putExtra(&name&, file);
intent.setClass(mContext,
Download.class);
startActivity(intent);
但实际上发现用btnfour4.setOnClickListener(myDialogOnClick); &还是没办法传入参数,大伙有没有什么好的解决方案.------解决思路---------------------- public void onClick(View v,String file) 你自己定义的 没有回调函数 所以不会有反映
------解决思路----------------------
写了个例子,你看看能不能帮你OnClickTestActivity.javaJava code
package com.android.
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.TextV
import android.widget.T
public class OnClickTestActivity extends Activity {
private MyC
private OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
String value = &你要传入的参数&;
if (mc != null) {
mc.onClick(v, value);
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.tv);
tv.setOnClickListener(listener);
setMyClickListener(new MyClick() {
public void onClick(View v, String value) {
Toast.makeText(OnClickTestActivity.this, value, 500).show();//这里做你所要的操作
private void setMyClickListener (MyClick mc) {
private interface MyClick {
void onClick(View v, String value);
相关解决方案
Copyright &Android按钮单击事件的四种常用写法总结
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下
很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同。因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值。
xml文件代码如下:
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" /&
四种方法分述如下:
匿名内部类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
btn2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
自定义单击事件监听类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
class MyClickListener implements OnClickListener {
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new MyClickListener());
btn2.setOnClickListener(new MyClickListener());
Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理
public class TestButtonActivity extends Activity implements OnClickListener {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
最后一种是我今天看到的一种写法,在XML文件中“显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法”
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button1" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button2" /&
这里在输完android:的时候按下 Alt+/ 会有 onClick 属性的提示, 但输入到 android:onClick=“ 的地方按下 Alt+/ 并没有提示 onClick 选项,让我突然觉得这里好像有点问题。
public class TestButtonActivity extends Activity {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
// 注意 这里没有 @Override 标签
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
这种写法整个代码中都不用声明button就可以实现button的单击事件。
以上就是四种实现按钮单击事件的方法。
粗略总结一下,就是按钮少的时候用匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类的。
按钮多的情况我还是选择第三种方法,方便。
关于第四种方法,我感觉最方便,但看了很多代码还是觉得写法不够大众化,感兴趣的朋友可以对此研究研究。相信会有不少收获。
希望本文所述对大家Android程序设计的学习有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 怎么让button不能点击 的文章

 

随机推荐