簡體   English   中英

Android AutoCompleteTextView返回錯誤的字符串

[英]Android AutoCompleteTextView return wrong string

我的Android應用程序有一個小問題。 我想在AutoCompleteTextView中放入一個單詞,然后跳轉到特定的Activity(取決於用戶給出的單詞)。

問題是,當我輸入一個特定的單詞時,程序與預期的正確答案不符,但返回錯誤的吐司消息。 但是,隨着我放的日志,我看到了正確的答案。 我認為解決方案很愚蠢,但是我堅持了下來,需要解決這個問題。

編碼:

Activity.java

public class paralActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_paral);
    final String [] temp = {"one","two","three"};
    AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
    actv.clearListSelection();

    final RelativeLayout myRelative = (RelativeLayout) findViewById(R.id.find);
    myRelative.setVisibility(View.INVISIBLE);

    ImageView myImage = (ImageView) findViewById(R.id.aktoploika);
    myImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(paralActivity.this, topParalActivity.class);
            startActivity(intent);
        }
    });

    ImageView myOtherImage = (ImageView) findViewById(R.id.aeroporika);
    myOtherImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            myRelative.setVisibility(View.VISIBLE);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(paralActivity.this, android.R.layout.select_dialog_item, temp);
            //Getting the instance of AutoCompleteTextView
             AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
            actv.setThreshold(1);//will start working from first character
            actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView
            actv.setTextColor(Color.RED);
            ImageView findBeach = (ImageView) findViewById(R.id.find_beach);
            findBeach.setOnClickListener(new View.OnClickListener() {
                @Override
             **   public void onClick(View view) {
                    AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
                    String choice = actv.getText().toString();


                    Log.i("Answer",choice);
                    if (choice == "one"){
                        Intent firstIntent = new Intent(paralActivity.this, nauagioActivity.class);
                        startActivity(firstIntent);
                    }else if (choice == temp[1]){
                        Intent secondIntent = new Intent(paralActivity.this, gerakasActivity.class);
                        startActivity(secondIntent);
                    }else if (choice == temp[2]){
                        Intent thirdIntent = new Intent(paralActivity.this, limnionasActivity.class);
                        startActivity(thirdIntent);
                    }else{
                        Toast.makeText(paralActivity.this,"wrong",Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    });

}
}

為了幫助您理解,在此活動中有2個imageViews。 當用戶按下第二個按鈕時,將出現一個relativeLayout(帶有一個AutoCompleteTextView和一個按鈕)。 用戶按下按鈕后寫單詞后,必須轉到特定活動。 我聲明了一個字符串數組(temp [3]),其中包含三個單詞,每個單詞包含3個活動。

問題開始於我放入**的最后一個onclick方法。 每次我從數組中輸入正確的單詞時,我都會收到Toast消息,但在日志中看到正確的單詞。

這是Activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_paral"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main"
android:scaleX="2"
tools:context="com.example.billy.zakynthosapp.paralActivity">




<TextView
    android:id="@+id/categories"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/welcome"
    android:text="@string/categories"
    android:textAlignment="center"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="30dp"
    android:textSize="11sp"
    android:textStyle="bold"
    android:textColor="@color/welcome"
    android:textAllCaps="true"/>



<ImageView
    android:id="@+id/aktoploika"
    android:layout_centerHorizontal="true"
    android:layout_width="130dp"
    android:layout_height="50dp"
    android:layout_below="@id/categories"
    android:layout_marginTop="35dp"
    android:scaleType="centerCrop"
    android:src="@drawable/par1" />


<TextView
    android:id="@+id/aktoploika_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/aktoploika"
    android:layout_alignTop="@+id/aktoploika"
    android:layout_alignRight="@+id/aktoploika"
    android:layout_alignBottom="@+id/aktoploika"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="@string/paralies"
    android:textSize="22sp"
    android:textColor="@color/categories"
    android:textStyle="bold"/>


<ImageView
    android:id="@+id/aeroporika"
    android:layout_centerHorizontal="true"
    android:layout_width="130dp"
    android:layout_height="50dp"
    android:layout_below="@id/aktoploika"
    android:layout_marginTop="35dp"
    android:scaleType="centerCrop"
    android:src="@drawable/par2" />



<TextView
    android:id="@+id/aeroporika_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/aeroporika"
    android:layout_alignTop="@+id/aeroporika"
    android:layout_alignRight="@+id/aeroporika"
    android:layout_alignBottom="@+id/aeroporika"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="@string/search"
    android:textSize="22sp"
    android:textColor="@color/categories"
    android:textStyle="bold" />


<RelativeLayout
    android:id="@+id/find"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/aeroporika"
    android:layout_marginTop="50dp"
    android:layout_centerInParent="true"
    android:background="@color/categories"
    android:scaleX="0.5">


    <TextView
        android:id="@+id/textView_1"
        android:layout_width="wrap_content"
        android:gravity="center_vertical"
        android:textSize="20sp"
        android:layout_centerHorizontal="true"
        android:text="@string/find_paral"
        android:textColor="@android:color/black"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/find_beach"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_marginLeft="200dp"
        android:src="@drawable/find"
        android:onClick="find"/>

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView_1"
        android:layout_marginTop="10dp"
        android:ems="10"
        android:text="">

        <requestFocus />
    </AutoCompleteTextView>

</RelativeLayout>

誰能幫我這個? 非常感謝!

嘗試choice.equals("one")而不是choice == "one"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM