2016-12-02 87 views
0

我試圖在解鎖屏幕時顯示吐司。但它顯示空吐司(即使我在EditText中輸入一些文本)。我該怎麼辦?吐司中沒有文本

package com.example.hpi5.myapplication; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.EditText; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.view.View; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 

    Button button = null; 
    MyReceiver receiver = null; 
    EditText editText = null; 
    String text; 

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

     receiver = new MyReceiver(); 

     editText = (EditText) findViewById(R.id.editText); 
     text = editText.getText().toString(); 

     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       Intent intent = new Intent(); 
       intent.setAction("my.action.string"); 
       intent.putExtra("str",text); 
       sendBroadcast(intent); 
      } 
     }); 

     IntentFilter filter = new IntentFilter(); 
     filter.addAction(Intent.ACTION_USER_PRESENT); 
     filter.addAction("my.action.string"); 
     this.registerReceiver(receiver, filter); 
    } 

    public class MyReceiver extends BroadcastReceiver 
    { 
     private String te ; 
     @Override 
     public void onReceive(Context context, Intent intent) 
     { 
      if (intent.getAction().equals("my.action.string")) { 
       te = intent.getExtras().getString("str"); 
      } 

      if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) { 
       Toast.makeText(context,te , Toast.LENGTH_LONG).show(); 
      } 

     } 
    } 

    @Override 
    protected void onDestroy() 
    { 
     if(receiver!=null) 
      this.unregisterReceiver(receiver); 
    } 
} 
+0

評論是不適合擴展討論;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/129751/discussion-on-question-by-rayan-i-am-trying-to-display-a-toast-whenever-在-SCRE)。 –

+0

據我所知,該過程可能會死亡,但根據文章應用程序重新啓動,因爲它是以前。 – rayan

回答

1

我做了一些錯誤,因爲它的麪包是沒有出現任何文字。(我是新來的Android程序在那個時間點)

我都做什麼錯誤

  • 我沒有使用Shared Preferences來存儲我的數據。
  • 由於我的接收機是動態註冊的。敬酒只在應用程序運行或在後臺顯示。
  • 我進入EditText內的文本後,我閉上我的應用程序,並從最近的應用程序刪除它。然後,我再次打開了應用程序,它創建了一個新的實例,我認爲那裏的數據實際上並不存在,並且在吐司中沒有文本。

我還要感謝Onik的耐心和幫助。