我正在尝试创建一个Helper类来在我的Android应用程序中显示Toasts,如下所示。
公共类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
我的问题是,当我尝试给视图充气时,如果没有我调用toastAlert的活动中的View,我就无法调用findViewById。有没有办法可以访问该视图?
答案 0 :(得分:1)
我唯一的想法是将View传递给方法。它不会那么糟糕,一切都会像这样:
class.toastAlert(this, "My Toast");
答案 1 :(得分:0)
我用它来获取LayoutInflator
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
我不知道这是否有帮助。