在android中自定义吐司

时间:2011-08-25 07:58:39

标签: android

尝试使用

在我的应用程序中更改toast的背景和文本颜色
LayoutInflater infator = getLayoutInflater();
            View layout =infator.inflate(R.layout.toast, (ViewGroup) findViewById(R.id.toast_layout));
            TextView toastText = (TextView) findViewById(R.id.toasttext);
            toastText.setBackgroundColor(Color.YELLOW);
            toastText.setText("uei:"+o.getUei());
            Toast toast = new Toast(getApplicationContext());
            toast.setDuration(Toast.LENGTH_LONG);
            toast.setView(layout);
            toast.show();

此代码存在于listview的OnItemClickListener中。

但应用程序因空指针异常而被强制关闭!!

这就是onclick听众所能提供的,它可以提供更好的画面。

public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alarms);
        m_alarmAdapter = new AlarmAdapter(this, R.layout.severity_item, m_alarms);
        setListAdapter(m_alarmAdapter);
        ListView lv = getListView();
                lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {
                Log.d(TAG, "clicked: " + view);
                final Alarm o = m_alarmAdapter.getItem(position);
                LayoutInflater infator = getLayoutInflater();

2 个答案:

答案 0 :(得分:1)

您要求当前视图查找toasttext ID,而不是您刚刚加载的视图。试试layout.findViewById()

答案 1 :(得分:-1)

如果要为吐司设计创建XML布局文件,这将使其变得更加容易。在创建XML文件之后,您可以将其添加到Java代码中。这是如何创建自定义吐司的示例。

Custom Toast in Android