<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CalculationActivity">
<TextView
android:id="@+id/question"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2 + 6 = ?"
android:textSize="24sp"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"/>
<LinearLayout
android:id="@+id/answer_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/question"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
android:paddingTop="20dp">
<TextView
android:id="@+id/answer_box"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/board_bg"
android:gravity="center"
android:textSize="24sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/answer_container"
android:layout_marginTop="40dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/option1"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/board_bg"
android:gravity="center"
android:text="8"
android:textSize="24sp"
android:layout_margin="10dp"
android:tag="8"
android:clickable="true"
android:focusable="true"/>
<TextView
android:id="@+id/option2"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/board_bg"
android:gravity="center"
android:text="3"
android:textSize="24sp"
android:layout_margin="10dp"
android:tag="3"
android:clickable="true"
android:focusable="true"/>
<TextView
android:id="@+id/option3"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/board_bg"
android:gravity="center"
android:text="4"
android:textSize="24sp"
android:layout_margin="10dp"
android:tag="4"
android:clickable="true"
android:focusable="true"/>
<TextView
android:id="@+id/option4"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/board_bg"
android:gravity="center"
android:text="9"
android:textSize="24sp"
android:layout_margin="10dp"
android:tag="9"
android:clickable="true"
android:focusable="true"/>
</LinearLayout>
</RelativeLayout>
package com.apdim3.learningforkidsunlimited;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.DragEvent;
import android.view.View;
import android.view.View.OnDragListener;
import android.view.View.OnLongClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class CalculationActivity extends AppCompatActivity {
private TextView answerBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculation);
answerBox = findViewById(R.id.answer_box);
findViewById(R.id.option1).setOnLongClickListener(new MyClickListener());
findViewById(R.id.option2).setOnLongClickListener(new MyClickListener());
findViewById(R.id.option3).setOnLongClickListener(new MyClickListener());
findViewById(R.id.option4).setOnLongClickListener(new MyClickListener());
answerBox.setOnDragListener(new MyDragListener());
}
private final class MyClickListener implements OnLongClickListener {
@Override
public boolean onLongClick(View view) {
View.DragShadowBuilder myShadow = new View.DragShadowBuilder(view);
view.startDrag(null, myShadow, view, 0);
return true;
}
}
private class MyDragListener implements OnDragListener {
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DROP:
TextView dropped = (TextView) event.getLocalState();
answerBox.setText(dropped.getText().toString());
if (checkAnswer(dropped.getText().toString())) {
Toast.makeText(CalculationActivity.this, "Correct!", Toast.LENGTH_SHORT).show();
// Proceed to next question
} else {
Toast.makeText(CalculationActivity.this, "Wrong!", Toast.LENGTH_SHORT).show();
answerBox.setText("");
}
break;
default:
break;
}
return true;
}
}
private boolean checkAnswer(String answer) {
// Check if the answer is correct
return answer.equals("8");
}
}
Post a Comment