2011-07-05 9 views
0

私は以下のコードを持ち、Eclipse仮想デバイス経由でコンピュータに正常に動作します。しかし、実生活の電話機にインストールすると、常にelse文に戻ります。 このアクティビティに値が渡されるとは限りません。そうでない場合は、ランダムなレコードを表示する必要があります。何か助けやアドバイス、そして読んでいただきありがとうございます。仮想デバイスと実デバイス上のIntent.getIntExtra()動作の変更

searchId = getIntent().getIntExtra("EMPLOYEE_ID", 0); 

    if(searchId > 0){ 
     Query="SELECT * FROM " + DB_TABLE +" ORDER BY RANDOM() LIMIT 1"; 
     Log.v("STANDARD RANDOM", "Was run"); 
    } 
    else{ 
     Query ="SELECT * FROM " + DB_TABLE +" WHERE _id=" + searchId + ""; 

     Log.v("FROM SEARCH PAGE", "Was run"); 
    } 
+0

最初の行は何をしていますか? –

+0

これは 'if'では問題ありません。これは 'getIntExtra'の動作の変化です。私はそれに応じてあなたの質問のタイトルを更新しました。 –

+0

getIntent()。getIntExtra()は常に0を返します。理由を把握しましたか? – Egor

答えて

0

これで問題が解決するかどうかわかりません。しかし、マニュアルに従って、あなたのコードが正しくありません:

名は、例えば、アプリcom.android.contactsは「com.android.contacts.ShowAll」のような名前を使用することになり、パッケージの接頭辞を含める必要があります。

出典:Intent.putExtra

パッケージプレフィックスなしで「EMPLOYEE_ID」を使用していますが、に1つ必要です。

関連する問題