Android-按下按钮后如何将 mysql 中的数据变为 "match"

标签 android mysql android-button

在我的项目中,我将提出一个多项选择类型的问题。我可以从mysql中选择问题和答案,但是,我无法在输入答案和mysql中的数据之间进行答案的“匹配”。我尝试了一些解决方案,但效果不佳。我需要一个很大的帮助。下面是我的代码。

进行多项选择的java类

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.normalmode);

new DataAsyncTask().execute();

}

public void onClick(View v){

    inputtext = ((Button) v).getText().toString();

    tv3 = (TextView)findViewById(R.id.textView3);
    tv3.setText(inputtext);
    if(inputtext == tv2.getText().toString()){
        playerscore +=5;
    } else {
        playerscore +=1;
    }
    score.setText("Scores : " + playerscore);

    new DataAsyncTask().execute();
}
class DataAsyncTask extends AsyncTask<String, String, String>{
    @Override
    protected String doInBackground(String... param) {
        String result = DBConnector.executeQuery("SELECT * FROM questions ORDER BY RAND( ) LIMIT 1");
        return result;
    }
    @Override
    protected void onPostExecute(String result) {
        question = (TextView)findViewById(R.id.textView_question);
        fchoice = (Button)findViewById(R.id.Btn_choice1);
        schoice = (Button)findViewById(R.id.Btn_choice2);
        tchoice = (Button)findViewById(R.id.Btn_choice3);
        tv2 = (TextView)findViewById(R.id.textView2);
        score = (TextView)findViewById(R.id.textView_score);
        try {               
            JSONArray jsonArray = new JSONArray(result);
            JSONObject jsonData = jsonArray.getJSONObject(0);
            question.setText(jsonData.getString("q_desc"));
            fchoice.setText(jsonData.getString("fchoice"));
            schoice.setText(jsonData.getString("schoice"));
            tchoice.setText(jsonData.getString("tchoice"));             
            ans = jsonData.getString("q_ans");
            tv2.setText(ans);               
        } catch(Exception e) {
            Log.e("log_tag", e.toString());
        }           
    }
}
} 

三个按钮通过使用在 xml 文件中共享相同的 onClick

 android:onClick="onClick"

我当前面临的问题是,无论我按下哪个按钮,它总是返回“false”。另外,有什么方法可以存储/传递“以前的”异步任务数据吗? 我尝试过使用内部存储,但效果不佳

编辑: 我的 xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.95" >



    <TextView
        android:id="@+id/textView_score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/player_score" />

</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.95" >

    <TextView
        android:id="@+id/textView_question"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/string_question"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/Btn_choice3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="@string/third_choice" 
        android:onClick="onClick" />

    <Button
        android:id="@+id/Btn_choice2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Btn_submit"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="@string/second_choice"
        android:onClick="onClick" />

    <Button
        android:id="@+id/Btn_choice1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Btn_choice2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="@string/first_choice"
        android:onClick="onClick" />

</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >



    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView1"
        android:text="TextView" />

</RelativeLayout>

</LinearLayout

textview2 和 textview3 用于测试我的输出并将其显示为文本

最佳答案

尝试这个 if(inputtext.equals(tv2.getText().toString())) 而不是 if(inputtext == tv2.getText().toString())

因为 == 运算符检查两个字符串是否是完全相同的对象。

.equals() 方法将检查两个字符串是否具有相同的值。

关于Android-按下按钮后如何将 mysql 中的数据变为 "match",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442399/

相关文章:

android - 如何在 Android 中将 ZXing api 与前置摄像头集成?

Android Studio 找不到默认 Activity

MySQL 将行格式化为列

mysql - JPA + MySQL : After Timeout --> use a local Connection

android - 主页有几个按钮可以点击导致不同的 Activity ?

android - 替换Android DialogFragment的按钮背景

android - 在 Android Instrumentation jUnit 测试中访问 R.raw 资源

android - EditText float 不返回值

mysql - 管理 mysql 中的版本数据

android - 安卓按钮数组