2012-09-27 32 views
-1

所以我一直在四處尋找Android教程,幫助問題等。我一直在遇到難以理解的問題或教程。簡單的Android問題

這裏是我的問題:

  1. 當我創建的可視化設計的項目,這段代碼會在.XML創建。 如何獲取該項目的ID以便稍後在.java文件中使用它?

  2. 如何讓我們說一個按鈕被點擊時添加回調?


這是我到目前爲止有:

的.java

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.Button; 

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

    public void Button_click_callback() // Where to add the callback in the .xml? 
    { 
     // How to get button ID and change the text of it? 
      //Knowing this will help me A LOT! 
    } 
} 

的.xml

<Button 
android:id="@+id/button1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:layout_marginLeft="79dp" 
android:layout_marginTop="32dp" 
android:text="Button" /> 
+1

請不要問在一個崗位多(無關)的問題,請您的標題總結你的文章。謝謝。 – Arjan

+0

@ user1667191你是幸運的,你有答案,從** CommonsWare先生你的問題** :) –

回答

4

當我創建在可視化設計的項目,一段代碼將位於.xml創建。如何獲得該項目的ID以便稍後在.java文件中使用它?

第1步:確保您已分配的ID在設計師的小部件(在你的XML以上,你會認爲這是android:id="@+id/button1

第2步:在Java中,你可以得到通過在某個適當的時間調用findViewById(R.id.button1)(例如,從Activity,您調用setContentView()之後的某個時間),在該窗口小部件的Java對象上。

如何讓我們說一個按鈕被點擊時添加回調?

一般來說,對於這樣的setter方法,如setOnClickListener(),你可以在你Button通過findViewById()檢索調用。

在由活動主辦部件點擊事件的具體情況,也有一個屬性,你可以在XML,它提供您Activity的方法是單擊窗口小部件時將調用的名稱,而不是你必須使用setter。

2
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button button1 = (Button)findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Do something in response to button click 
     } 
    }); 
} 

所有這一切都是訊號分配延長在Android開發人員網站上進行了詳細記錄。你應該看看他們的這些基本的東西。

http://developer.android.com/guide/topics/ui/controls/button.html

-1

對於回叫 - android組件需要在通話設備中註冊。組件的id在xml中必須是唯一的。 使用唯一的ID可以動態修改組件或者可以使用回調。

0

您需要使用onClickListener並重寫onClick方法。

btn.setOnClickListener.(new View.OnClickListener(){ 

    @Override 
     public void onClick(View v) { 
     //TO DO 
    } 

}); 

OnClickListener是一個接口。這就是爲什麼你需要重寫OnClick方法。

0
//in oncreate method of activity 

//take button id like that 
Button button1 = (Button)findViewById(R.id.button1); 

//then implement on click listener for performing action on button 

button1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Do something in response to button click 
    } 
}); 
} 

//you can also implements onclicklistener in activity.its interface; 

public class MainActivity extends Activity implements View.OnClickListener 

//then generate method 
public void onClick(View view) { 


} 
0
  1. 您可以使用findViewById從Java中XML得到視圖ID,請確保您應該聲明在視圖中的ID,否則可能會造成異常導致應用程序強制關閉
  2. 如果你想呼叫背部使用XML,而不是編程 你可以宣佈Android版:的onClick在佈局XML

例如該視圖屬性,你的情況,你需要添加機器人:的onClick =「Button_click_callback」你

<Button 
android:id="@+id/button1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:layout_marginLeft="79dp" 
android:layout_marginTop="32dp" 
android:text="Button" 
android:onClick="Button_click_callback"/> 

那麼您可以在您的活動

public void Button_click_callback() 
{ 
} 

,如果你想用java回編程調用, 首先,你必須獲得與findViewById的觀點,然後你可以添加點擊監聽器使用Button_click_callback方法回調這種看法