Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击按钮可工作一次_Android - Fatal编程技术网

Android 单击按钮可工作一次

Android 单击按钮可工作一次,android,Android,我试图让一个按钮只工作一次,所以我做了这个解决方案,但有时它会持续工作两次或更多的点击,如何解决这个问题 Button bton = (Button)findViewById(R.id.ajoutTroisDemi); bton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v)

我试图让一个按钮只工作一次,所以我做了这个解决方案,但有时它会持续工作两次或更多的点击,如何解决这个问题

              Button bton = (Button)findViewById(R.id.ajoutTroisDemi); 
         bton.setOnClickListener(new View.OnClickListener() {  
          @Override
             public void onClick(View v) {
              v.setClickable(false);
              v.setEnabled(false);
                ajouter(v);
                Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
                startActivity(l);
                Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
             }

        public void  ajouter(View v) {
            db.open();
          EditText     rm_26 = (EditText)findViewById(R.id.rm_26);
          String       rm_26_1ts = rm_26.getText().toString();
          SharedPreferences prefs4 = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
          prefs4.edit().putString(Ordr, rm_26_1ts).commit();   
        int nb = prefs4.getInt(B, 0);              
            long id = prefs4.getLong(ID, 0);
            db.insertMMbreMenage1(id,rm_26_1ts);
               int test = nb-1;
               Editor editor = prefs4.edit();
               editor.putInt("nb", test);
               editor.commit();

            db.close();                     
            } 
 });

1.你可以从你的代码中删除这些行,因为它们,你的按钮变得不可点击

      v.setClickable(false);
      v.setEnabled(false);
二,。如果你真的需要这种方法。您可以在代码完成后尝试启用它们。像这样

public void onClick(View v) {
              v.setClickable(false);
              v.setEnabled(false);
              ajouter(v);
              Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
              startActivity(l);
              Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
              v.setClickable(true);
              v.setEnabled(true);
             }

1.你可以从你的代码中删除这些行,因为它们,你的按钮变得不可点击

      v.setClickable(false);
      v.setEnabled(false);
二,。如果你真的需要这种方法。您可以在代码完成后尝试启用它们。像这样

public void onClick(View v) {
              v.setClickable(false);
              v.setEnabled(false);
              ajouter(v);
              Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
              startActivity(l);
              Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
              v.setClickable(true);
              v.setEnabled(true);
             }
试着直接做

final Button bton = (Button)findViewById(R.id.ajoutTroisDemi);
bton.setOnClickListener(new OnClickListener() {  
    @Override
    public void onClick(View v) {
                bton.setEnabled(false);
                ajouter(v);
                Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
                startActivity(l);
                Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
    }
}
试着直接做

final Button bton = (Button)findViewById(R.id.ajoutTroisDemi);
bton.setOnClickListener(new OnClickListener() {  
    @Override
    public void onClick(View v) {
                bton.setEnabled(false);
                ajouter(v);
                Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
                startActivity(l);
                Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
    }
}
替换您的代码

bton.setOnClickListener(new View.OnClickListener() {  
          @Override
             public void onClick(View v) {
              v.setClickable(false);
              v.setEnabled(false);
                ajouter(v);
                Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
                startActivity(l);
                Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
             }

您的问题将得到解决。

替换您的代码

bton.setOnClickListener(new View.OnClickListener() {  
          @Override
             public void onClick(View v) {
              v.setClickable(false);
              v.setEnabled(false);
                ajouter(v);
                Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
                startActivity(l);
                Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
             }



您的问题将得到解决。

我建议您使用条件语句测试按钮在执行按钮所需的任务后是否启用not。

我建议您使用条件语句测试按钮在执行按钮所需的任务后是否启用not。

为什么v、 可点击设置(假);v、 setEnabled(假);是否无效???您能否指定情况,当您的按钮工作两次时?你的代码看起来不错。你也可以隐藏该按钮,或者你可以设置一个布尔值Clicked=false,当你单击它一次时,将其设置为true,并且在onclick中有一个if(单击){…@user3110424:是的,代码很好,但是当我快速点击按钮时,它会工作两次,有时会这样!@Rudi:谢谢你的解决方案,也许我会这样处理为什么v.setClickable(false);v.setEnabled(false);无效???您能否指定该情况,当您的按钮工作两次时?您的代码似乎很好。您也可以隐藏该按钮,或者您可以将布尔值Clicked设置为false,当您单击一次时,将其设置为true,并且在onclick内有一个if(单击){…@user3110424:是的,代码很好,但当我快速点击按钮时,它会工作两次,有时会这样!@Rudi:谢谢你的解决方案,可能是我将如何处理感谢你的回应:)我的问题是,我希望按钮只工作一次,但即使我使用了方法v.setClickable(false);v.setEnabled(false);我碰巧发现按钮工作了不止一次,这是一个需要大量响应的问题:)我的问题是,我希望按钮只工作一次,但即使我使用了方法v.setClickable(false);v.setEnabled(false)如果我将v.setEnabled(false)更改为bton.setEnabled(false),它将解决问题,请您解释一下,谢谢!它不起作用,如果您快速单击,按钮将执行两次!因此如果我将v.setEnabled(false)更改为bton.setEnabled(false)这将解决问题,你能解释更多吗,谢谢!它不起作用,如果你快速单击按钮,按钮将执行两次!谢谢,你能解释区别吗,我已经有了这个答案,但我想知道为什么这一个有效,而另一个无效!因为你试图在按钮视图中执行此操作,所以它由内部按钮控制操作,但按钮bton本身是一个按钮对象,它本身是一个布局小部件。因此,bton不按按钮视图vit发生故障,如果您快速单击按钮,按钮将执行两次!意味着它不会禁用按钮?谢谢,您能解释区别吗,我已经有了这个答案,但我想知道为什么这一个有效,以及其他不是!因为您试图在按钮视图内执行此操作,所以它由内部按钮操作控制,但按钮bton本身就是一个按钮对象,它本身就是一个布局小部件。因此,bton非按钮视图vit不起作用,如果您快速单击按钮,按钮将执行两次!意味着它没有禁用按钮?