【问题标题】:How to assign a boolean value under the onclick method of android?android的onclick方法下如何赋值布尔值?
【发布时间】:2016-03-15 10:29:52
【问题描述】:

我有布尔值 i 和 'j'。

当只单击图像“两个”时,我想要一种方法。 在单击图像“一”后单击图像“二”时的其他方法。 请帮助先生。我有麻烦了。

如何从 onclick 方法中获取返回值。

public class MainActivity extends AppCompatActivity{
    boolean I,j;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ImageView one=(ImageView) findViewById(R.id.imageView1);
        final ImageView two=(ImageView) findViewById(R.id.imageView2);
        i=false;
           j=false;
        one.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                i=true;
            }
        }); 
            two.setOnclickListener(new View.OnClickListener(){
                   @Override
                   public void onclick(View v){ 
                          j=true;

                       }

        if (i){
            three.setImageResource(R.drawable.green1);
        }
            if(j){
                    three.setImageResourse(R.drawable.red1)
         }
           if(I==true&& j==true)
                 three.setImageResoure(R.drawable.yellow1)
    }
}

【问题讨论】:

  • 你想在按钮点击时显示图像>??

标签: android onclick imagebutton


【解决方案1】:

您的问题是您不了解您编写的代码的流程。

一步一步:

  1. 应用程序启动。 i 未初始化。
  2. Activity 已创建 i 设置为 false。
  3. OnClickListener 是为您的ImageView 设置的。
  4. 触发 if 语句以检查 i。它是假的(此时它只能是假的)。
  5. 在某些时候,您单击 ImageView 并且 i 变为 true。

您可以愉快地将 two.setImageResource(R.drawable.green1); 行移到 onClick(View v) 函数的主体中。

所以它看起来像这样:

one.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        two.setImageResource(R.drawable.green1);
    }
});

【讨论】:

    【解决方案2】:
    one.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          i=true;
          if (i){
            //if you want change vale to false (i = false)
            two.setImageResource(R.drawable.green1);
          }
    
    });
    

    【讨论】:

    • 请告诉我们有关此代码的更多信息。您提供的答案与所提出的问题没有明显联系。虽然这可能是一个很好的答案,但它需要解释,为什么。
    【解决方案3】:

    试试这样:

    public class MainActivity extends AppCompatActivity{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            final ImageView one=(ImageView) findViewById(R.id.imageView1);
            final ImageView two=(ImageView) findViewById(R.id.imageView2);
            one.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    two.setImageResource(R.drawable.green1);
                }
            });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      相关资源
      最近更新 更多