2014-11-06 71 views
0

我是android新手,有一個基本問題。在2個獨立的類中實現2個按鈕android

我在我的BlockIdActivity類中創建了一個按鈕,該類從ActionBarActivity擴展並實現了該按鈕的OnClickListener()。我想創建一個新的類,它也從ActionBarActivity中用一個單獨的按鈕進行擴展,並且還實現了OnClickListener()。我想這樣做的原因是將每個按鈕實現的邏輯分開放在單獨的文件中。

這兩個按鈕使用相同的佈局,換句話說,它們在同一頁面上。這可能嗎?如果沒有,我還必須在BlockIdActivity中實現第二個按鈕?

我在BlockIdActivity.java中的按鈕工作正常。我已經在第二個類ScanWifi.java中實現了我的第二個按鈕,它應該顯示按鈕被按下。我在這裏使用敬酒。我不會收到任何編譯錯誤。但是,當我實際按下按鈕時,我沒有看到我的烤麪包。這裏是ScanWifi.java文件的內容:

public class ScanWifi extends ActionBarActivity { 

private Button mScanWifiButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_block_id); 

    mScanWifiButton = (Button)findViewById(R.id.ScanWifiButton); 
    mScanWifiButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(ScanWifi.this, 
        R.string.ScanWifi_toast, 
        Toast.LENGTH_SHORT).show(); 
     } 

}); 

} 

}的strings.xml文件

內容是:

<resources> 

    <string name="app_name">SnifferTrain</string> 
    <string name="BlockId">BlockId</string> 
    <string name="ScanWifi">ScanWifi</string> 
    <string name="ScanWifi_toast">ScanWifi Button Pressed</string> 
    <string name="negative_blockid_toast">Block Id Field Cannot Be Less Than 1 or Empty.Setting BlockID To 1</string> 
    <string name="action_settings">Settings</string> 

</resources> 

如果我ScanWifi類的確可以延長ActionBarActivity那麼爲什麼是敬酒不顯示我何時按下ScanWifiButton?謝謝

回答

0

我想這樣做的原因是分開 每個按鈕在不同的文件中實現的邏輯。

是的,你可以創建一個新的activity實現這一點,因爲onClick方法是區別 - 手段,按鈕做不同的事情。

但是,使用簡單的if-else邏輯可以與button做不同的事情。例如:

我有一個activity與「保存」按鈕。 If的數據已經在SQLite中,我將更新onCLick中的數據,else將數據插入到onCLick中的SQLite中。

問題是,這取決於你想要做什麼以及你喜歡什麼。一個按鈕做不同的事情會在活動類中創建一個漫長而複雜的代碼。