Android тост и просмотр справки - PullRequest
0 голосов
/ 21 декабря 2009

Я пытаюсь создать класс Helper для отображения тостов в моем приложении для Android следующим образом.

публичный класс ToastHelper {

final static Toast toastAlert(String msg) {
    LayoutInflater inflater = LayoutInflater.from(Main.self.getApplicationContext());
    View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));

    TextView tv = (TextView)layout.findViewById(R.id.toast_text);
    tv.setText(msg);

    Toast toast = new Toast(Main.self.getApplicationContext());
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(layout);
    return toast;
}

}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/toast_layout_root"
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:padding="10dip"
          android:background="#FFF"
          >
<TextView android:id="@+id/toast_text"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:textColor="#000"
          />

Мой код основан на примере: http://developer.android.com/guide/topics/ui/notifiers/toasts.html

Моя проблема в том, что когда я пытаюсь раздуть представление, я не могу вызвать findViewById без представления из действия, в которое я вызываю toastAlert. Есть ли способ получить доступ к этому представлению?

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Моей единственной мыслью было бы передать View в метод. Это не было бы так плохо, все выглядело бы так:

class.toastAlert(this, "My Toast");
0 голосов
/ 21 декабря 2009

Я использую это, чтобы получить LayoutInflator

 LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);

Я не знаю, поможет это или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...