在意图之间选择(按钮点击) - Android应用程序开发

时间:2011-09-18 20:55:07

标签: android eclipse android-layout android-button

我是Android应用程序开发的新手,我一直在研究一个简单的FlashLight应用程序,它可以在屏幕上切换各种颜色。初始活动仅使用2个按钮绘制布局,标记为绿色和蓝色。我已在两个按钮上安装了Click Listeners,并在它们上设置了两个意图,以便每个按钮加载它的相应活动,但是当我运行应用程序时,我只能从第一个视图转到其他视图之一(Green OR Blue,但不是两个)。我希望能够选择EITHER按钮并加载下一个活动,但我有点迷失。也许创建一个布尔值来确定用户点击了哪个按钮? IDK。这可能听起来有点令人困惑,因为我不擅长描述这样的技术问题,但这里是我的代码。

package com.jbsoft.SimpleFlashlight;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.*;
import android.widget.Button;
import android.widget.Toast;

public class SimpleFlashLightActivity extends Activity {

  Button GreenButton;
  Button BlueButton;


  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    BlueButton = (Button) findViewById(R.id.bluebutton);
    BlueButton.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v) {

        Intent blueintent = new Intent(SimpleFlashLightActivity.this,
                                       BlueFlashLightActivity.class);
        startActivity(blueintent);

        Toast.makeText(v.getContext(), "SWITCH COLOR!",
                       Toast.LENGTH_LONG);

        GreenButton = (Button) findViewById(R.id.bluebutton);
        GreenButton.setOnClickListener(new View.OnClickListener() {

          public void onClick(View v) {

            Intent greenintent = new Intent(
              SimpleFlashLightActivity.this,
              GreenFlashLightActivty.class);
            startActivity(greenintent);

          }
        });
      }
    });

  }

  public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater mi = getMenuInflater();
    mi.inflate(R.menu.list_menu, menu);
    return true;
  }

}

1 个答案:

答案 0 :(得分:1)

您正在为bluebotton的onclick事件中的绿色按钮设置onclicklistener。所以只有在用户点击蓝色按钮时才会设置监听器。或者我在这里错过了什么?

为蓝色按钮设置listnere之外的绿色按钮的onclick监听器,它应该可以工作..