0

EditText の問題は、入力値が返されないことです。その入力値を使用して状態を確認しています。

if条件をチェックして次のアクティビティに進むように正しい入力をしていますが、常にelse条件に進みます。

以下のコードを確認してください。問題についてコメントしました。

ここにスニペットがあります

public class BuildWord extends Activity
{
String word = "word";
String finished = "Word Built";

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.buildword);

    EditText get = (EditText)findViewById(R.id.dataToSend);
    String getdata = get.getText().toString(); //Here i am getting Data from EditText

    displayIntentData();

    if (getdata.equals("word")) 

    //Here i am checking with "word" but it goes to else condition.I am typing "word" only
    {
        findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() 
        {   
            public void onClick(View v) 
            {
                Intent intent = new Intent(BuildWord.this,MainActivity.class);
                intent.putExtra("key", word);
                startActivity(intent);

            }
        });
    }
    else
    {
        findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() 
        {   
            public void onClick(View v) 
            {
                Intent intent = new Intent(BuildWord.this,DropCard.class);
                intent.putExtra("key", finished);
                startActivity(intent);                  
            }
        });
    }
}

@Override
protected void onNewIntent(Intent intent) 
{
    super.onNewIntent(intent);
    setIntent(intent);
    displayIntentData();
}

private void displayIntentData()
{
    Intent intent = getIntent();
    TextView tv = (TextView)findViewById(R.id.intentData1);
    Bundle extras=intent.getExtras();

    if(extras!=null)
    {
        tv.setText("Data received: "+extras.getString("key"));
    }
    else
    {
        tv.setText("No extradata received");
    }
}

}

4

4 に答える 4

0

displayIntentData(); の後 String getdata = get.getText().toString(); を宣言します。

于 2012-11-07T12:35:18.963 に答える
0

ビューを膨張させた直後に EditText フィールド (「get」) で値を取得しています。まだテキストを入力する時間がないため、空になっています。次に、「getData」に「単語」が含まれているかどうかを確認します(含まれていません!)。したがって、ELSEにヒットしています。

于 2012-11-07T12:30:05.290 に答える
0

クリックイベントが発生したときにテキストを取得します....

String getdata = get.getText().toString(); //Here i am getting Data from EditText

上記のコードは常に空の文字列を返します...

文字列を取得して簡単に比較できるように、クリックイベントとプロセスにコードを入れてみてください

于 2012-11-07T12:30:19.180 に答える
0

ビューが作成された直後に入力データを取得しています。代わりに、クリックリスナー内で入力データを取得してみてください

于 2016-11-04T14:36:47.403 に答える