在2个单独的类android中实现2个按钮

时间:2014-11-06 04:59:45

标签: java android

我是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时为什么吐司没有显示?感谢

1 个答案:

答案 0 :(得分:0)

  

我想这样做的原因是将实现的逻辑分开   单独文件中的每个按钮。

是的,您可以创建一个新的activity来实现这一目标,因为onClick方法不同 - 意味着按钮会执行不同的操作。

但是,使用简单button逻辑可以使用if-else执行不同的操作。示例:

我有activity“保存”按钮。 If数据已经在SQLite中,我将更新onCLick中的数据,else数据将插入onCLick中的SQLite。

关键是,这取决于你想做什么,你喜欢什么。执行不同操作的一个按钮将在活动类中创建一个冗长且更复杂的代码。