2014-11-06 58 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中。

问题是,这取决于你想要做什么以及你喜欢什么。一个按钮做不同的事情会在活动类中创建一个漫长而复杂的代码。