大家好我在textview中设置文本时遇到了一些问题,所以我将在这里解释一下这种情况。首先,我正在尝试创建自己的自定义Toast通知。一切都很好,但我想根据if条件更改textview中的文本。但是当我尝试这样做时,我得到一个空指针异常。这是我的代码:
img.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.cust_toast_layout,(ViewGroup)findViewById(R.id.ToastrelativeLayout));
//textViewCircleDescribtion = (TextView)findViewById(R.id.textViewCircleDescribtion);
Toast toast = new Toast(MainWindow.this);
toast.setView(view);
toast.setDuration(10000);
toast.show();
/* try
{
if(Week == 1)
//textViewCircleDescribtion.setText(getResources().getString(R.string.circle_describ1));
else
//textViewCircleDescribtion.setText("azsdfasfasd");
} catch (Exception e)
{
e.printStackTrace();
} */
}
});
我认为这个问题是因为textViewCircleDescribtion是在与setContentView(R.layout.activity_main_window)不同的布局中声明的;有没有办法解决这个问题?
答案 0 :(得分:2)
您在视图中的TextView。你可以使用view.findViewById
找到它,它查找具有给定id的子视图。如果此视图具有给定的ID,请返回此视图..
所以不要使用
textViewCircleDescribtion = (TextView)findViewById(R.id.textViewCircleDescribtion);
你应该使用
textViewCircleDescribtion = (TextView)view.findViewById(R.id.textViewCircleDescribtion);
答案 1 :(得分:0)
在虚增的TextView
View
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.cust_toast_layout,(ViewGroup)findViewById(R.id.ToastrelativeLayout));
textViewCircleDescribtion = (TextView)view.findViewById(R.id.textViewCircleDescribtion);
答案 2 :(得分:0)
textview的膨胀是错误的。像这样填充它
textViewCircleDescribtion = (TextView)view.findViewById(R.id.textViewCircleDescribtion);