android eclipse按钮OnClick事件

时间:2013-03-13 04:16:12

标签: java android xml eclipse android-layout

我有两个文件:main_activity.xml和home.xml。我在main_activity.xml中创建了一个按钮

以下是代码段:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:background="@drawable/splash_background"
 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=".MainActivity" >

<Button
    android:id="@+id/Home"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    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_width="match_parent"
    android:background="@drawable/app_bg"
    android:layout_height="match_parent"
    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>

这就是我的全部。如果您回复,请告诉我在哪里添加代码,例如目录或代码片段之间。

6 个答案:

答案 0 :(得分:8)

要管理Android中的点击活动,您可以按照以下方式进行操作

  1. YourActivity.java 类上实施OnClickListener,如

    public class MainActivity extends Activity implements OnClickListener

  2. 然后,在.java类中声明您的按钮,如

    Button btn = (Button) findViewById(R.id.btnPlay);

  3. 然后使用按钮btn变量,如下所示

    btn.setOnClickListener(new View.OnClickListener() {
    
        public void onClick(View v) {
            myClick(v); /* my method to call new intent or activity */
        }
    });
    
  4. 处理点击事件:

    public void myClick(View v) {
        Intent intent = new Intent(**this, Swipe.class**);
        startActivity(intent);// for calling the activity
    }
    
  5. 您还需要在android manifest中注册您的活动(.java),如下所示

    <activity
        android:name=".Swipe"
        android:screenOrientation="landscape" >
    </activity>
    

答案 1 :(得分: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方法   view(在本例中为button1)

<?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">

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button1"
            android:onClick="button1OnClick"/>
</LinearLayout>

答案 2 :(得分:1)

创建另一个类转到你的项目右键单击并单击class并创建Home。 在Home类文件中扩展活动并添加像这样的代码

public class Home extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
  }
}
启动活动类中的

添加此行

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>

答案 3 :(得分:0)

在API级别4中添加了

android:onClick,以使其更容易,更像Javascript-web,并从XML驱动所有内容。它内部的作用是在OnClickListener上添加Button,它会调用您的家庭方法。

<Button
  android:id="@+id/Home"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  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_width="wrap_content"
  android:layout_height="wrap_content"
  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
  }
});   

两者完全相同

答案 4 :(得分:0)

我会给你一点点开始,因为这个答案可以帮助那些在使用onClick()方面遇到麻烦的人,但是你真的需要学习Java并通过 {{ 3}} 所以你可以提出更好的问题

您需要阅读关于Actviities的{​​{3}}以及如何创建它们。然后在你的代码中你将有一个函数

 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);
}

您还需要在HomeActivity中添加manifest,而不是Activities

但是你真的需要浏览文档并做一些教程来了解Android框架的运作方式,并且需要学习Java以使您的生活变得更加轻松。除了我之前提到的两个链接之外,还有Android Docs关于点击事件的信息,因为有不同的使用方式onClick()

我希望这足以让你开始,我真的希望你通过文档来更好地了解你在做什么。祝你好运!

另一个重要的入门链接

Here

答案 5 :(得分:0)

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();
        }
    });