首页 > 解决方案 > 比较文本字段值

问题描述

使用 Internet、Android Studio 和您当前的 Android 应用程序开发知识,创建一个包含两 (2) 个文本字段和一 (1) 个按钮的 Android 应用程序项目。该按钮将比较来自文本字段的输入并在单击时显示响应(如果值相同,则为相同,否则为不同)。您可能需要为此创建一个新活动

标签: androidandroid-studiocomparetextfield

解决方案


在使用StackOverflow之前学习基础知识非常重要,这与其他从头开始的教程网站不同,您需要先付出一些努力。如果您是初学者,就像我们一样/有一天,Google 是您最好的朋友。然而,正如你所要求的......

首先,我们需要创建两个activities,一个用于输入,另一个用于显示结果,当然您可以在同一个活动中进行。

首先Activity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginStart="5dp"
    android:layout_marginTop="5dp"
    android:layout_marginEnd="5dp"
    android:layout_marginBottom="5dp"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="value 1"
        android:textAppearance="@style/TextAppearance.AppCompat.Display1" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="value 2"
        android:textAppearance="@style/TextAppearance.AppCompat.Display1" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="compare"
        android:text="Compare" />
</LinearLayout>

关联.java文件:根据需要更改包名

package com.app.myapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    public void compare(View view) {
        // get the values form those two text views

        String value1 = ((EditText) findViewById(R.id.editText1)).getText().toString(); // you can use global variable too.. here, I've just used the shortcut 
        String value2 = ((EditText) findViewById(R.id.editText2)).getText().toString();

        Intent intent = new Intent(this, ResultActivity.class);

        if (value1.equals(value2)) {
            // same
            intent.putExtra("result", true);
        } else {
            intent.putExtra("result", false);
        }
        startActivity(intent);
    }
}

现在ResultActivity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ResultActivity">


    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textAppearance="@style/TextAppearance.AppCompat.Display2" />
</LinearLayout>

相关类:.java:

package com.app.myapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class ResultActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);

        boolean result = getIntent().getBooleanExtra("result", false);
        if (result)
            ((TextView) findViewById(R.id.textView)).setText("SAME");
        else
            ((TextView) findViewById(R.id.textView)).setText("NOT SAME");

    }
}

推荐阅读