2013-07-05 24 views
-3

我寫在Android的一個簡單的應用程序,我有這樣的問題:處理imageButtons

首先,我用imageButtons爲了從位於我res/layout目錄.xml文件加載圖像。問題是:我可以像Java中的普通按鈕那樣處理它們嗎?我的意思是有沒有實例化的地方?

因爲當後來我使用onClickListeners我希望他們點擊時觸發一個事件(在另一個.java文件中加載另一個.xml文件)。

而且其他的事情: 某處在我MAinActivity.java我有幾行代碼:

Button imageButton2 = (Button) findViewById(R.id.imageButton2); 
imageButton2.setOnClickListener(this); 

究竟是什麼用的findviewById

我需要做R.Java並找到班級ID並添加此字段嗎?或者我能自動理解它嗎?

+5

我總是印象深刻的人「寫」任何東西,甚至沒有試圖去了解他們試圖做的基本知識。 RTFM隊友,RTFM! –

+0

我寧願一個真正的答案,而不是一般的指示 –

+2

不,你更喜歡有人做你的工作。這很有可能不會發生。也許你不應該以這種態度進行編程? –

回答

1

findViewById()正在查找某某對象(在本例中爲圖像按鈕)的「id」,並將該XML與您當前正在查看的Java代碼關聯起來。你需要一個XML文件(不是R.java)。 Android應用程序通常具有XML文件對於演示文稿和結構的應用程序,而Java應該是的邏輯和數據庫

當我第一次開始編程的手機應用程序,這也讓我感到困惑。然而,作爲一名程序員,你總想研究你的主題。

看網上一些簡單的例子:

http://www.mkyong.com/android/android-imagebutton-example/

此外,這是一個緩慢而穩定(很詳細!)指南。這將有助於瞭解Android手機應用的整體設計和結構。

http://developer.android.com/training/basics/firstapp/index.html

最後,要知道正是 「[R」 指的是,你必須看到的setContentView()

//you should have this method in your program 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //here is where it decides the exact XML file this Java class refers to. 
    setContentView(R.layout.main); 

    addListenerOnButton(); 

} 

的onCreate()通常要設置上下文(上下文表示您所指的是哪個XML文件)。然後,該Java類中的其他方法將知道該XML文件。

+0

我的佈局目錄中有很多.xml文件。在每個文件中,我使用相同的名稱作爲按鈕。我只是想知道,如果它理解正確的imageButton我指的是我上面使用的.xml文件,如果我真的可以處理我的imageButton作爲一個按鈕(爲了被點擊等)謝謝。 –

+0

我做了一個編輯,希望能回答你的問題。記得看看我的兩個鏈接。第一個例子非常簡單明瞭,所以先看看。 –

+0

好的。沒問題。即使我已經閱讀過文檔,但可能存在誤解。不管怎樣,謝謝。 –