【问题标题】:Error in java and xml files in Android Studio [closed]Android Studio 中的 java 和 xml 文件中的错误 [关闭]
【发布时间】:2021-10-07 18:44:00
【问题描述】:

我在 Android Studio 中遇到错误。

我的 xml 文件中的错误是:“在布局文件中发现意外的文本”android:id="@+id/idLLScore"> 它在第 6 行!

我的 Java 文件中的错误是:“无法解析符号 'idLLScore'”。 它在第 88 行!

我不确定如何解决这个问题?这是我的代码:

Java 文件

package se.hv.ei.quizapp;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.google.android.material.bottomsheet.BottomSheetDialog;

import java.util.ArrayList;
import java.util.Random;

public class MainActivity extends AppCompatActivity {
    String question;
    private TextView questionTV,questionNumberTV;
    private Button option1Btn,option2Btn,option3Btn,option4Btn;
    private ArrayList<QuizModal> quizModalArrayList;
    Random random;
    int currentScore = 0, questionAttempted = 1, currentPos;
    private Object LinearLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView questionTV = findViewById(R.id.idTVQuestion);
        TextView questionNumberTV = findViewById(R.id.idTVQuestionAttempted);
        Button option1Btn = findViewById(R.id.idBtnOption1);
        Button option2Btn = findViewById(R.id.idBtnOption2);
        Button option3Btn = findViewById(R.id.idBtnOption3);
        Button option4Btn = findViewById(R.id.idBtnOption4);
        quizModalArrayList = new ArrayList<>();
        random = new Random();
        getQuizQuestion(quizModalArrayList);
        currentPos = random.nextInt(quizModalArrayList.size());
        setDataToViews(currentPos);
        option1Btn.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        if(quizModalArrayList.get(currentPos).getAnswer().trim().toLowerCase().equals(option1Btn.getText().toString().trim().toLowerCase())){ currentScore++; }
        questionAttempted++;
        currentPos = random.nextInt(quizModalArrayList.size());
        setDataToViews(currentPos);
            }
        });

        option2Btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(quizModalArrayList.get(currentPos).getAnswer().trim().toLowerCase().equals(option2Btn.getText().toString().trim().toLowerCase())){ currentScore++;
                }
                questionAttempted++;
                currentPos = random.nextInt(quizModalArrayList.size());
                setDataToViews(currentPos);
            }
        });

        option3Btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(quizModalArrayList.get(currentPos).getAnswer().trim().toLowerCase().equals(option3Btn.getText().toString().trim().toLowerCase())){ currentScore++;
                }
                questionAttempted++;
                currentPos = random.nextInt(quizModalArrayList.size());
                setDataToViews(currentPos);
            }
        });

        option4Btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(quizModalArrayList.get(currentPos).getAnswer().trim().toLowerCase().equals(option4Btn.getText().toString().trim().toLowerCase())){ currentScore++;
                }
                questionAttempted++;
                currentPos = random.nextInt(quizModalArrayList.size());
                setDataToViews(currentPos);
            }
        });
    }


    private void showButtonSheet(){
        BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(MainActivity.this);
        View bottomSheetView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.score_bottom_sheet,(LinearLayout)findViewById(R.id.idLLscore));
        TextView scoreTV = bottomSheetView.findViewById(R.id.idTVScore);
        Button restartQuizBtn = bottomSheetView.findViewById(R.id.idBtnRestart);
        scoreTV.setText("Your Score is \n"+currentScore + "/10");
        restartQuizBtn.setOnClickListener((new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                currentPos = random.nextInt(quizModalArrayList.size());
                setDataToViews(currentPos);
                questionAttempted = 1;
                currentScore = 0;
                bottomSheetDialog.dismiss();
            }
        }));
        bottomSheetDialog.setCancelable(false);
        bottomSheetDialog.setContentView(bottomSheetView);
        bottomSheetDialog.show();
    }


    private void setDataToViews(int currentPos){
           questionNumberTV.setText("Questions Attempted : " +questionAttempted + "/10");
           if(questionAttempted == 10){
               showButtonSheet();
           }else{
               questionTV.setText(quizModalArrayList.get(currentPos).getQuestion());
               option1Btn.setText(quizModalArrayList.get(currentPos).getOption1());
               option2Btn.setText(quizModalArrayList.get(currentPos).getOption2());
               option3Btn.setText(quizModalArrayList.get(currentPos).getOption3());
               option4Btn.setText(quizModalArrayList.get(currentPos).getOption4());
           }
    }

    private void getQuizQuestion(ArrayList<QuizModal> quizModalArrayList) {
            quizModalArrayList.add(new QuizModal( "If a cat swishes its tail about, what are they trying to tell you?", "They're happy",  "They're bored", "They're annoyed",  "That they just farted", "They're annoyed"));
            quizModalArrayList.add(new QuizModal( "How many hours do cats sleep per day?", "4 hours", "20 hours",  "14 hours", "9 hours", "20 hours"));
            quizModalArrayList.add(new QuizModal( "Cat tongues are?",  "Shrivelled", "Sticky",  "Smooth",  "Rough",  "Rough"));
            quizModalArrayList.add(new QuizModal(  "Cats sweat from which part of their body?",  "Their paws",  "Their armpits",  "Their tongue",  "Their tail",  "Their paws"));
    }
}

我的 XML 文件:

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

    <TextView
        android:id="@+id/idTVScore"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/purple_200"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textAllCaps="false"
        android:textAlignment="center"
        android:gravity="center"
        android:text="@string/your_score_is"
        android:layout_margin="10dp"
        android:padding="3dp"
    />

    <Button
        android:id="@+id/idBtnRestart"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:text="@string/restart_quiz"
        android:textAllCaps="false"
        />


</LinearLayout>

我做错了什么?感谢您的帮助或指导!

【问题讨论】:

    标签: java android xml


    【解决方案1】:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        android:id="@+id/idLLScore">
    

    你在上面的行中有一个额外的字符

    android:layout_height="wrap_content"&gt;

    这就是为什么它不会编译您的 XML 以及为什么您的 java 文件找不到引用的原因。

    应该是这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多