android eclipse 按钮 OnClick 事件
Posted
技术标签:
【中文标题】android eclipse 按钮 OnClick 事件【英文标题】:android eclipse button OnClick event 【发布时间】:2013-02-28 21:29:15 【问题描述】:我有 2 个文件:main_activity.xml 和 home.xml。我在 main_activity.xml 中做了一个按钮
这里是sn-p的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:background="@drawable/splash_background"
android:layout_
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=".MainActivity" >
<Button
android:id="@+id/Home"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="43dp"
android:onClick="home"
android:text="Home" />
</RelativeLayout>
然后,我有了 home.xml。我希望按钮打开 home.xml。我怎样才能做到这一点? 我不知道任何java,而且我是android开发的新手。
下面是我的 home.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:background="@drawable/app_bg"
android:layout_
android:orientation="vertical" >
</LinearLayout>
下面是我的 AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.idozer"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.idozer.SplashActivity"
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="com.example.idozer.MainActivity"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
这就是我所拥有的。如果您回复,请告诉我在哪里添加代码,例如目录或代码sn-ps之间。
【问题讨论】:
除非您使用像 MonoDroid 或其他一些应用程序构建替代方案,否则 Java 是开发 Android 应用程序的一个非常基本的要求。如果您不了解 Java,那么我建议您先学习。 【参考方案1】:为了在android中管理点击活动,你可以这样做
在 YourActivity.java 类上实现 OnClickListener
,例如
public class MainActivity extends Activity implements OnClickListener
然后,在 .java 类中声明您的按钮,如
Button btn = (Button) findViewById(R.id.btnPlay);
然后使用按钮btn
变量如下
btn.setOnClickListener(new View.OnClickListener()
public void onClick(View v)
myClick(v); /* my method to call new intent or activity */
);
处理点击事件:
public void myClick(View v)
Intent intent = new Intent(**this, Swipe.class**);
startActivity(intent);// for calling the activity
您还需要在android manifest
中注册您的活动(.java),如下所示
<activity
android:name=".Swipe"
android:screenOrientation="landscape" >
</activity>
【讨论】:
【参考方案2】:您可以使用此代码。
Android:OnClickListener
在我们的活动类中,我们添加了 onclick 方法。
在我们的活动类中,我们添加了 onclick 方法。
//On click event for button1
public void button1OnClick(View v)
//Inform the user the button has been clicked
Toast.makeText(this, "Button1 clicked.", Toast.LENGTH_SHORT).show();
在布局文件中,我们添加对 onclick 处理程序的引用 活动。该应用程序将自动将 onclick 方法绑定到 查看(在本例中为 button1)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:text="@string/button1"
android:onClick="button1OnClick"/>
</LinearLayout>
【讨论】:
【参考方案3】:创建另一个类转到您的项目右键单击并单击类并创建主页。 在那个 Home 类文件中扩展活动并添加这样的代码
public class Home extends Activity
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
在splash活动类添加这一行
Intent intent = new Intent(SplashActivity.this,Home.class);
startActivity(intent);
在你的 android 清单文件中添加 Home 活动类
<activity android:name="com.example.idozer.Home"
android:label="@string/app_name" >
</activity>
【讨论】:
不要使用 int,它是 Java 和几乎所有其他语言中的保留字;) 没问题,这样更好:) @codeMagic 操作已离线,我对此有点问题。如果你有团队 viwer,你能帮帮我吗?生病在这里发布我的会话信息 对不起,我现在不能。你应该有足够的东西让你开始。我可以尝试回答您以后可能遇到的任何问题 @codeMagic 在启动活动类中添加这一行。这让我很困惑,因为我不知道你对我意味着什么,我没有任何名为的文件。【参考方案4】:我会给你一点点让你开始,因为这个答案可能会帮助其他在使用onClick()
时遇到问题的人,但你确实需要学习 Java 并通过 Android Docs 这样你就可以提出更好的问题
您需要阅读Here 关于Actviities
以及如何创建它们。然后在你的代码中你将有一个函数
public void home(View v) //the name of this function comes from where you declared in your manifest `android:onClick="home"
Intent intent (MainActivity.this, HomeActivity.class); //MainActivity is the name of current activity and HomeActivity is the name of the activity you want to start
can add intent extras/flags/categories here
startActivity(intent);
您还需要在manifest
中添加HomeActivity
,就像在其他Activities
中一样。
但是您确实需要阅读文档并完成一些教程才能了解 Android 框架的运行方式,并且您需要学习 Java 以使您的生活更轻松。除了我之前给出的两个链接,还可以查看this post关于点击事件,因为有不同的方式使用onClick()
我希望这足以让您入门,并且我真的希望您阅读文档以更好地了解您在做什么。祝你好运!
另一个重要的入门链接
Intents
【讨论】:
【参考方案5】:android:onClick
被添加到 API 级别 4 中,以使其更容易、更像 javascript 网络,并从 XML 驱动一切。它在内部做的是在Button
上添加一个OnClickListener
,它调用你的home 方法。
<Button
android:id="@+id/Home"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="43dp"
android:onClick="home"
android:text="Home" />
.
public void home(View view)
Intent intent=new Intent (view.getContext(),Luton.class);
this.startActivity(intent);
在你的活动课上
使用 java 代码,您可以通过从 xml 获取按钮的 id 来执行按钮单击。
<Button
android:id="@+id/myHomeButton"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="43dp"
android:text="Home" />
.
Button button= (Button) findViewById(R.id.myHomeButton);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
//do whatever you want on button click
);
两者完全相同
【讨论】:
关闭,但您不希望以编程方式使用android:onClick="home" if you are implementing the
onClickListener`。它将寻找签名为 public void home(View v)
的函数
我给了 2 种方法来做同样的事情。使用第一个或第二个。但是我建议使用第二种方式(以编程方式调用按钮侦听器)
我了解,但您在两者中都有 android:onClick="home"
。我的意思是,如果您采用第二种方式(以编程方式),那么您不希望在 xml 中使用该行。采用哪种方法实际上取决于您使用它做什么。是的,它似乎是最受欢迎的,而且通常可能是“最佳”选择,但我会根据我的用途使用这两种选择
@codeMagic 同意我删除了第二种方式的行格式 xml。【参考方案6】:
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener()
@Override
public void onClick(View view)
Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
);
【讨论】:
以上是关于android eclipse 按钮 OnClick 事件的主要内容,如果未能解决你的问题,请参考以下文章
android eclipse 按钮 OnClick 事件
Eclipse 中所有 API 级别的 Android 5.0 FAB 按钮
Android Eclipse - 单击时创建另一个按钮的按钮
使用 Eclipse 的 Android 应用程序 - 创建按钮数组