Android 将新文本设置为文本视图时出现空指针异常
我正在尝试在我的手机上运行AndroidApp。我可以显示我的欢迎片段,而且我可以触发日志消息。不幸的是,如果我想将文本值从“welcome”更改为“Neuer text”,就会出现空指针异常。出了什么问题?我对安卓系统的开发还很陌生Android 将新文本设置为文本视图时出现空指针异常,android,Android,我正在尝试在我的手机上运行AndroidApp。我可以显示我的欢迎片段,而且我可以触发日志消息。不幸的是,如果我想将文本值从“welcome”更改为“Neuer text”,就会出现空指针异常。出了什么问题?我对安卓系统的开发还很陌生 public class WelcomeFragment extends Fragment implements OnClickListener { @Override public View onCreateView(LayoutInflater
public class WelcomeFragment extends Fragment implements OnClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
TextView text1 = (TextView) v.findViewById(R.id.welcome_text);
text1.setText("NeuerText");
}
}
在onClick()
您应该使用getView()
:
此外,如果您不希望每个按钮都发生这个动作,您可能想在<代码> OnCLCKEL()/代码>使用<代码>开关>代码> .< /P> < P>在<代码> OnCcCK()/代码>中,<代码> V<代码>是单击的视图项,例如按钮,而不是在<代码> OnCuraTeVIEW()/<代码>中膨胀的视图。
您应该使用getView()
:
此外,如果您不希望每个按钮都发生这个动作,您可能想在<代码> OnCLCKEL()/代码>使用<代码>开关>代码> .< /P> < P>在<代码> OnCcCK()/代码>中,<代码> V<代码>是单击的视图项,例如按钮,而不是在<代码> OnCuraTeVIEW()/<代码>中膨胀的视图。
您应该使用getView()
:
此外,如果您不希望每个按钮都发生这个动作,您可能想在<代码> OnCLCKEL()/代码>使用<代码>开关>代码> .< /P> < P>在<代码> OnCcCK()/代码>中,<代码> V<代码>是单击的视图项,例如按钮,而不是在<代码> OnCuraTeVIEW()/<代码>中膨胀的视图。
您应该使用getView()
:
此外,如果您不希望每个按钮都发生这个动作,您可能需要在<代码> OnCLCKEL()/<代码> < < /P> > P> >代码> OnClick(View V),V是您单击的按钮。文本视图不属于按钮,它属于
R.layout.fragment\u welcome
。因此,您可以在片段的onCreateView()
中找到并初始化TextView,然后在onClick()中使用它;
有些人喜欢这样:
public class WelcomeFragment extends Fragment implements OnClickListener {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
tv = (TextView) v.findViewById(R.id.welcome_text);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
tv.setText("NeuerText");
}
}
在OnClick(视图v)
中,v是您正在单击的按钮。文本视图不属于按钮,它属于R.layout.fragment\u welcome
。因此,您可以在片段的onCreateView()
中找到并初始化TextView,然后在onClick()中使用它;
有些人喜欢这样:
public class WelcomeFragment extends Fragment implements OnClickListener {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
tv = (TextView) v.findViewById(R.id.welcome_text);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
tv.setText("NeuerText");
}
}
在OnClick(视图v)
中,v是您正在单击的按钮。文本视图不属于按钮,它属于R.layout.fragment\u welcome
。因此,您可以在片段的onCreateView()
中找到并初始化TextView,然后在onClick()中使用它;
有些人喜欢这样:
public class WelcomeFragment extends Fragment implements OnClickListener {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
tv = (TextView) v.findViewById(R.id.welcome_text);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
tv.setText("NeuerText");
}
}
在OnClick(视图v)
中,v是您正在单击的按钮。文本视图不属于按钮,它属于R.layout.fragment\u welcome
。因此,您可以在片段的onCreateView()
中找到并初始化TextView,然后在onClick()中使用它;
有些人喜欢这样:
public class WelcomeFragment extends Fragment implements OnClickListener {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
tv = (TextView) v.findViewById(R.id.welcome_text);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
tv.setText("NeuerText");
}
}
您无法从按钮的onClick传递参数(“View v”)获取TextView,因为这是实际按钮的视图
你应该这样做:
public class WelcomeFragment extends Fragment implements OnClickListener {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
TextView text1 = (TextView) view.findViewById(R.id.welcome_text);
text1.setText("NewerText"); //Also fixed typo
}
}
您无法从按钮的onClick传递参数(“View v”)获取TextView,因为这是实际按钮的视图
你应该这样做:
public class WelcomeFragment extends Fragment implements OnClickListener {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
TextView text1 = (TextView) view.findViewById(R.id.welcome_text);
text1.setText("NewerText"); //Also fixed typo
}
}
您无法从按钮的onClick传递参数(“View v”)获取TextView,因为这是实际按钮的视图
你应该这样做:
public class WelcomeFragment extends Fragment implements OnClickListener {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
TextView text1 = (TextView) view.findViewById(R.id.welcome_text);
text1.setText("NewerText"); //Also fixed typo
}
}
您无法从按钮的onClick传递参数(“View v”)获取TextView,因为这是实际按钮的视图
你应该这样做:
public class WelcomeFragment extends Fragment implements OnClickListener {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_welcome, container, false);
Button button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
return view;
}
@Override
public void onClick(View v) {
//Log.d("JobaApp", "Logtext"); // see LogCat
TextView text1 = (TextView) view.findViewById(R.id.welcome_text);
text1.setText("NewerText"); //Also fixed typo
}
}
您正在尝试从按钮获取TextView的视图吗?我认为按钮不包含TextView,因此您将得到一个NullException。发布异常的整个stacktrace。胡乱猜测:text1
为null
,不存在此类视图R.id.welcome\u text
。正在单击的视图是您试图更改的文本视图吗?您是否试图从按钮获取文本视图的视图?我认为按钮不包含TextView,因此您将得到一个NullException。发布异常的整个stacktrace。胡乱猜测:text1
为null
,不存在此类视图R.id.welcome\u text
。正在单击的视图是您试图更改的文本视图吗?您是否试图从按钮获取文本视图的视图?我认为按钮不包含TextView,因此您将得到一个NullException。发布异常的整个stacktrace。胡乱猜测:text1
为null
,不存在此类视图R.id.welcome\u text
。正在单击的视图是您试图更改的文本视图吗?您是否试图从按钮获取文本视图的视图?我认为按钮不包含TextView,因此您将得到一个NullException。发布异常的整个stacktrace。胡乱猜测:text1
为null
,不存在这样的视图R.id.welcome\u text
。正在单击的视图是您试图更改的文本视图吗?