onButtonClick从未在源代码中使用吗? [英] onButtonClick is never used in source code?

查看:71
本文介绍了onButtonClick从未在源代码中使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个运行良好的简单应用程序,但是我遇到的问题是,如果输入正确,我将使用密码条件来触发按钮单击.

I am writing a simple app which is working fine but the issue I have is that I am using a password condition to trigger a button click if entered correctly.

问题是我的源代码说"onButtonClick"从未使用过,当我在应用程序中手动按下该按钮时,它突然强行关闭并崩溃.谁都知道我在做什么错.我在源代码的开头扩展了Activity.我应该扩展AppCompatActivity吗?

The issue is that my source code is saying 'onButtonClick' is never used and when I manually press that button in the app, it suddenly force closes and crashes. Anyone know what I am doing wrong. I am extending Activity, at the start of the source code. Should I be extending AppCompatActivity?

public class Gvoice extends Activity implements OnClickListener{

ListView lv1;
static final int check = 1111;
Button b1;
Button b_home;
EditText a1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gvoice);
    lv1 = (ListView)findViewById(R.id.LVGVoiceReturn);
    b1 = (Button)findViewById(R.id.GVoice);
    a1 = (EditText) findViewById(R.id.editTextHome);
    b1.setOnClickListener(this);

    //This now handles an automatic press of the bVoice button 1 second after the activity is opened
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            b1.callOnClick();
        }
    }, 1000);

}

public void onButtonClick(View v) {
    if (v.getId() == R.id.BHome) {
        String str = a1.getText().toString();


        //Go to the relevant page if any part of the phrase or word entered in the 'EditText' field contains 'xxx' which is not case sensitive
        if (str.toLowerCase().contains("home")) {
            Intent userintent = new Intent(Gvoice.this, PocketSphinxActivity.class);
            startActivity(userintent);
        } else {
            Toast.makeText(getApplicationContext(), "Incorrect Information", Toast.LENGTH_SHORT).show();
        }
    }
}

public void onClick(View v){
Intent i1 = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    i1.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    i1.putExtra(RecognizerIntent.EXTRA_PROMPT, "Please Repeat Again");
    startActivityForResult(i1, check);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == check && resultCode == RESULT_OK){
        ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        lv1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
        a1.setText((String) lv1.getItemAtPosition(0));    //Get the first phrase in the first row of list view

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                b_home.performClick();
            }
        }, 500);    //Automatically click the 'Blogin' button after 500ms
    }

    super.onActivityResult(requestCode, resultCode, data);
}

}

更新:以下是xml文件.请注意,onButtonClick已添加到xml文件中,但是当使用条件语句单击按钮时,它仍然会强制关闭应用程序:

Update: Below is the xml file. Please note that onButtonClick has been added to the xml file but still it force closes the app when the button is clicked using the condition statement:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ececec">

<ImageView
    android:layout_width="100dip"
    android:layout_height="100dip"
    android:background="@drawable/patient_two"
    android:id="@+id/pimage"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="85dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Patient Name: Joe Blogs"
    android:id="@+id/textView"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Cause of Injury: Car crash"
    android:id="@+id/textView2"
    android:layout_below="@+id/pimage"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="15dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Date of Birth:"
    android:id="@+id/textView3"
    android:layout_below="@+id/textView2"
    android:layout_toStartOf="@+id/textView2"
    android:layout_marginTop="25dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Gender:"
    android:id="@+id/textView4"
    android:layout_below="@+id/textView3"
    android:layout_alignStart="@+id/textView3" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Occupation:"
    android:id="@+id/textView5"
    android:layout_below="@+id/textView4"
    android:layout_alignStart="@+id/textView4" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Address:"
    android:id="@+id/textView6"
    android:layout_below="@+id/textView5"
    android:layout_alignStart="@+id/textView5" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Medical History"
    android:id="@+id/textView7"
    android:layout_marginTop="15dp"
    android:layout_below="@+id/textView6"
    android:layout_centerHorizontal="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Heart attack"
    android:id="@+id/textView8"
    android:layout_marginTop="15dp"
    android:layout_below="@+id/textView7"
    android:layout_alignStart="@+id/textView6" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Arthritis"
    android:id="@+id/textView9"
    android:layout_below="@+id/textView8"
    android:layout_alignStart="@+id/textView8" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Tests Completed"
    android:id="@+id/textView10"
    android:layout_marginTop="15dp"
    android:layout_below="@+id/textView9"
    android:layout_centerHorizontal="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="X-Ray"
    android:id="@+id/textView11"
    android:layout_below="@+id/textView10"
    android:layout_alignStart="@+id/textView9"
    android:layout_marginTop="15dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="..."
    android:id="@+id/textView12"
    android:layout_below="@+id/textView11"
    android:layout_alignStart="@+id/textView11" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Tests Due"
    android:id="@+id/textView14"
    android:layout_below="@+id/textView12"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="15dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="..."
    android:id="@+id/textView15"
    android:layout_below="@+id/textView14"
    android:layout_alignStart="@+id/textView12"
    android:layout_marginTop="15dp" />

<ListView
    android:layout_width="150dp"
    android:layout_height="50dp"
    android:id="@+id/lvVoiceReturn1"
    android:textColor="@color/white"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter"
    android:id="@+id/Blogin1"
    android:onClick="onButtonClick"
    android:layout_alignParentBottom="true"
    android:layout_toStartOf="@+id/bVoice1" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Speak"
    android:id="@+id/bVoice1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true" />

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/TFusername1"
    android:layout_alignParentStart="true"
    android:hint="Speech to Text" />

推荐答案

您可以通过4种方法处理按钮单击:

You can 4 method handle button click :

方法1:

public class Mtest extends Activity {

  Button b1;
  public void onCreate(Bundle savedInstanceState) {
    ...
   Button b1 = (Button) findViewById(R.id.b1);
   b1.setOnClickListener(myhandler1);
     ...
  }
  View.OnClickListener myhandler1 = new View.OnClickListener() {
    public void onClick(View v) {
      // it was the 1st button
    }
  };

}

方法2:

class MTest extends Activity implements OnClickListener {
    public void onCreate(Bundle savedInstanceState) {
    ...
    Button b1 = (Button) findViewById(R.id.b1);

    b1.setOnClickListener(this);
      ...
    }

    @Override
    public void onClick(View v) {

    }
}

xml和android:onClick ="HandleClick"中的方法3:

method 3 in xml and android:onClick="HandleClick" :

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="HandleClick" />



public class MTest extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void HandleClick(View view) {

    }
}

方法4:

public class MTest extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         Button b1 = (Button) findViewById(R.id.b1);
        b1.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                // do stuff
            }
        });

    }
}

这篇关于onButtonClick从未在源代码中使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆