-1

コードに if else ステートメントがあります。

おそらく、(lat("1.2960994") と lng("103.848237")) で Textview をクリックすると、次の意図である map.class に移動します。

if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237"))

ただし、 it(textview) をクリックしても、次の意図には至りませんでした。実際、それは私に「else」コードを与えました。

Toast.makeText(SingleMenuItemActivity.this, "Invalid MAP", Toast.LENGTH_LONG).show();

コードの何が問題なのかわかりません。「IF」部分を表示できませんでした。誰かが私を助けることができますか?前もって感謝します

これは私のソースコードの一部です:

public void onClick(View v) {

         //TODO Auto-generated method stub



    if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237")){

    Intent intent = new Intent(SingleMenuItemActivity.this,map.class);
    intent.putExtra("MAP",KEY_LATITUDE.toString());
    intent.putExtra("MAP",KEY_LONGITUDE.toString());
    startActivity(intent);
        //startActivity(new Intent(SingleMenuItemActivity.this,
            //  map.class));

    /*Intent n = new Intent(MainActivity.this,map.class); 
    n.putExtra("lat",latitude.get(position).toString()); 
    n.putExtra("lng",longitude.get(position).toString());
    startActivity(n); */

    }
    else
    {
        //startActivity(new Intent(SingleMenuItemActivity.this,
            //map.class));


        Toast.makeText(SingleMenuItemActivity.this, "Invalid MAP", Toast.LENGTH_LONG).show();
    }
}



}
4

3 に答える 3

2

ここから何かを伝えるのは難しいですが、これらは私の推奨事項です。

1) 適切な Java 命名規則を使用します。KEY_LATITUDEとが定数でない場合、KEY_LONGITUDEそれらをすべて大文字にするべきではありません。それらが定数である場合、それらを何かと比較することはかなり無意味に思えます。

2)これらの値であってはKEY_LATITUDEなりKEY_LONGITUDEません。代わりに、デバッグして、それらがどのような値であるかを調べる必要があります。これを行うには、次のような Log ステートメントを試してください。

Log.d("coords", "lat: " + KEY_LATITUDE + " long: " + KEY_LONGITUDE);

値が実際に何であるかを確認します。coordsLogCat を使用してタグを検索します。そこから、期待どおりの正しい比較が得られているかどうかを確認できます。

編集:もう1つ気づきました。toString()あなたはあなたKEY_LATITUDEと価値観を求めていますKEY_LONGITUDE。それらはすでに文字列ではありませんか? .equals()オブジェクトの等価性を比較します。あなたの場合、代わりにこれを試す必要があるかもしれません:

if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))
于 2013-08-13T13:54:26.700 に答える
0

あなたの問題は、私が見ることができる onClick メソッド内で KEY_LATITUDE と KEY_LONGITUDE が定義されていないことだと思います。OnClickListener は、私が間違っていなければ、匿名の内部クラスであるため、(スーパー クラスのクラス変数以外の) 変数を使用できないため、問題が発生する可能性があります。そうでない場合でも、 onClick が渡すビュー「v」の位置を直接取得するコードが必要です。これは、クリックしたビューであり、私が知る限り気にかけている唯一のビューだからです。TextView の作成時に ( のようにtv.setTag([latCoord, longCoord])) 座標をタグに格納し、onClick メソッド内で によってアクセスすることができますv.getTag()

于 2013-08-13T14:09:57.077 に答える
0

交換してみてください

 if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237"))

if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))
于 2013-08-13T14:08:10.927 に答える