2016-02-25 26 views
1

我已經定義了一個簡單的Toast即將顯示「日誌已添加」,當一個文件已被寫入。其餘代碼只是將EditText內容寫入名爲log.txt的文件的其餘部分。沒有合適的方法makeText() - 吐司(Android)

我已經使用getActivityContext(),thisMainActivity作爲context參數試圖使其工作。但由於某種原因,它仍然沒有。我已經輸入了正確的課程,我已經檢查了manifest,但MainActivity已正確申報。我已經搜索了相當長的一段時間,因爲我知道這將被視爲一個新手問題。但從來沒有少,這將是很好得到答案:)

//SEND ARRIVAL TIME 
public void sendArrTime(View view) { 

    btnArr = (Button) findViewById(R.id.btnArr); 
    btnArr.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      //Opens log.txt 
      OutputStreamWriter out = new OutputStreamWriter(openFileOutput("arrlog.txt", MODE_APPEND)); 

      //Writes contents to file 
      etArr = (EditText) findViewById(R.id.etArr); 
      String text = etArr.getText().toString(); 
      out.write(text); 
      out.write('\n'); 

      //close file 
      out.close(); 

      //Confirmation Toast 
      Toast toast = Toast.makeText(this, "Log added", 3).show(); 


      } 
     } 
    ); 
+2

使用'MainActivity.this'而不是'this'。 – Pang

+1

請注意,「this」實際上指的是封裝的對象,它是一個View.OnClickListener() – JoxTraex

回答

2

docs

持續時間INT:多長時間來顯示信息。 LENGTH_SHORT或LENGTH_LONG

因此,Toast.LENGTH_SHORT或Toast.LENGTH_LONG。不是 '3'

+1

您可以使用數值來設置它,但short爲0,long爲1,它更好地使用內置常數。 –

+0

絕對正確 – xAF

+0

好吧,我解決了它。 –

0
Toast.makeText(this,"Log added"+password,Toast.LENGTH_SHORT).show(); 
0

使用適當的上下文MainActivity.thisthis

Toast.makeText(MainActivity.this, "Log added", Toast.LENGTH_SHORT).show(); 
+0

獲取更多信息[here](http://stackoverflow.com/a/3504538/4924793)。 – Emzor

+0

我已將其更改爲MainActivity.this,現在它說「不兼容的類型」。必需:'android.widget.Toast'發現:'void'。 –