2011-12-05 53 views
1

這是我在我的主要的Java文件代碼添加另一項活動。我將如何使另一個按鈕與活動連接。請告訴我,如果我沒有足夠好地表達這一點。我只需要在主要的java文件中添加另一個按鈕。我已經在清單中有一個活動,並且有一個類,我只需要將另一個代碼塊放入主java文件。該按鈕的ID是p40,xml佈局的名稱是p40.xml,該類稱爲p40.java,活動稱爲p40。這是我的時刻代碼:如何在主java文件

package com.duncan.hello.world; 

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

import com.duncan.hello.world.R; 

public class HelloWorldActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    Button aButton; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    aButton = (Button) this.findViewById(R.id.button1); 

    aButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      Intent i = new Intent(HelloWorldActivity.this, OtherActivity.class); 
      startActivity(i); 
     }}); 
} 
} 
+0

要添加另一個按鈕,這樣做,你沒有添加的第一個同樣的事情。只需添加另一個到你的佈局。並在您的main.java文件中充氣。 –

+0

你能告訴我它是哪一塊代碼嗎? –

回答

2

你應該做

// This code is copied from your code as is 
// to have a reference point as well as this is also 
// code for adding click listener to button which you 
// need to handle click and then do what you want. 
// In this case you are launching an Activity 
// Block of code you already have to use STARTS 
aButton = (Button) this.findViewById(R.id.button1); 

aButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(HelloWorldActivity.this, OtherActivity.class); 
     startActivity(i); 
    }}); 
// Block of code you already have to use ENDS 

// This code is added for newButton which looks similar to above block 
Button newButton 
newButton = (Button) this.findViewById(R.id.button2); 

newButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(HelloWorldActivity.this, AnOtherActivity.class); 
     startActivity(i); 
    }}); 

你必須在layout/main.xml文件中添加另一個button1

+0

謝謝你。 –

0

退房Android Developers Blog: UI framework changes in Android 1.6

具體底部的「易點擊監聽器」一節。

「與Android 1.6,這一切都不需要所有你需要做的就是在你的活動,以處理click聲明的公共方法(該方法必須有一個View參數):」

class MyActivity extends Activity { 
    public void myClickHandler(View target) { 
     // Do stuff 
    } } 

「然後從您的XML佈局中引用此方法:」

<Button android:onClick="myClickHandler" /> 

它只是使代碼更清潔一點。

+0

謝謝你很多,我不知道它會那麼簡單。 :)但那個地方它說//做東西我應該把什麼? –

+0

不知道最後一句話是不是一個笑話。但是,如果不是,它將取決於您在應用中想要實現的目標。 'myClickHandler'與被按下的按鈕綁定,因此您只需添加用戶按下該按鈕時需要的任何代碼即可。理想情況下,你會有一個每個按鈕的處理程序。你可以重用你的處理程序,並檢查哪個View作爲參數傳入,但我不會建議,除非你有這樣做的正當理由。 – GrkEngineer

1

你必須知道你有兩種可能性: 第一個,你必須在XML中分隔什麼是「activity.xml」和「Activity.class」,你將聲明和配置你按鈕,在.java中,你將指定想要實現的。 (with/out intent's ..)

第二個問題,你必須在你的.java聲明你的按鈕。

我會告訴你: activity.xml

<Button android:id="@+button/test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="First Button"/> 
<Button android:id="@+button/test2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Second Button"/> 

///////////////////////////// //////////////////////////////////

Activity.java

..

Button first = (Button)findViewById(R.button.test); 
Button second = (Button)findViewById(R.button.test2); 

first.setOnclickListener(new OnClickListener() { 
    public void onClick(View v) { 
     //Do Something guy 
    }}); 

second.setOnclickListener(new OnClickListener() { 
    public void onClick(View v) { 
     //Do diferent something 
    }}); 

..

我希望我能幫上忙。 問候

+0

我應該把//做些什麼東西,然後//做不同的事情? –

+0

我的摺疊rs。事實上,沒有理由複製實現。 –