2016-02-25 4 views
1

Я определил простой Toast, который будет отображать «log добавил», когда файл был записан. Остальная часть кода - это всего лишь остальная часть метода, который записывает содержимое EditText в файл с именем log.txt.Нет подходящего метода для makeText() - Toast (Android)

Я использовал getActivityContext(), this и MainActivity как в 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

Обратите внимание, что «это» на самом деле ссылается на объект, который является инкапсулирующим, который является 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

Используйте надлежащий контекст MainActivity.this НЕ this.

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

Получить дополнительную информацию [здесь] (http://stackoverflow.com/a/3504538/4924793). – Emzor

+0

Я изменил его на MainActivity.this, и теперь он говорит «Несовместимые типы». Обязательно: «android.widget.Toast» Найдено: «void». –

Смежные вопросы