Android Can';t从主活动(带接口)更改片段中的文本视图,
虽然我读过类似的帖子问题,但我还没有找到解决问题的方法。正如您在标题中看到的,我无法更改TextFragment中的Textview。 我收到这个错误:07-09 15:05:55.593 6441-6441/com.eguide.dimitris.campusguide E/AndroidRuntime:FATAL EXCEPTION:main 07-09 15:05:55.593 6441-6441/com.eguide.dimitris.campusguide E/AndroidRuntime:java.lang.NullPointerExceptionAndroid Can';t从主活动(带接口)更改片段中的文本视图,,android,interface,nullpointerexception,textview,fragment,Android,Interface,Nullpointerexception,Textview,Fragment,虽然我读过类似的帖子问题,但我还没有找到解决问题的方法。正如您在标题中看到的,我无法更改TextFragment中的Textview。 我收到这个错误:07-09 15:05:55.593 6441-6441/com.eguide.dimitris.campusguide E/AndroidRuntime:FATAL EXCEPTION:main 07-09 15:05:55.593 6441-6441/com.eguide.dimitris.campusguide E/AndroidRunti
07-09 15:05:55.593 6441-6441/com.eguide.dimitris.campusguide E/AndroidRuntime:com.eguide.dimitris.campusguide.mainActivity$1.onVisitStart(mainActivity.java:66) 所以我非常感谢你的帮助。 提前谢谢 主要活动 文本片段 图像片段 接口 伙计们也注意到我已经试过了,但没有改变
inter inte;
public void changestatus(){
placeEventListener= new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
name=visit.getPlace().getName().toString();
if (name!=null){
inte.respond(name);
inte.barstatus2();
}
}
};
编辑:
如果代替
public void changestatus(){
placeEventListener= new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
name=visit.getPlace().getName().toString();
if (name!=null){
respond(name);
barstatus2();
}
}
使用
我可以改变…你能解释为什么吗??
我不希望这段代码在start()上运行。
我希望这段代码在一个方法中工作。您需要在
textFragment
中进行少量更改,将TextView
在onCreateView()
方法中初始化为
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.text_fragment, container,false);
text1 = (TextView)getActivity().findViewById(R.id.textF);
text1.setText("Press Start button to find buildings near you");
return view;
}
您是否尝试过调试代码以更好地了解错误发生的位置?让错误所在的方法或类位于.com.eguide.dimitris.campusguide.mainActivity$1.onVisitStart(mainActivity.java:66),而不是一大块代码,这会很有帮助……好的,因此您可能不需要在问题中包含所有类。请尝试稍微整理一下您的问题,让我们更好地了解问题出在哪里。
textFragment
中的TextView
应该在onCreateView()
方法中初始化,而不是onActivityCreated()
@Daniele我清理了按钮片段…我认为没有必要。。。谢谢你的建议不起作用@Apurva当我执行此操作时,会出现另一个错误:java.lang.RuntimeException:无法启动活动组件信息{com.eguide.dimitris.campusguide/com.eguide.dimitris.campusguide.mainActivity}:android.view.InflateException:二进制XML文件行#35:在主活动-->setContentView(R.layout.main_活动)中,在这行代码中膨胀类片段-->和ti点时出错;我让你的答案起作用了,但它并没有解决我的问题。谢谢。
public interface inter {
public void respond(String data);
public void barstatus();
public void barstatus2();
}
inter inte;
public void changestatus(){
placeEventListener= new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
name=visit.getPlace().getName().toString();
if (name!=null){
inte.respond(name);
inte.barstatus2();
}
}
};
public void changestatus(){
placeEventListener= new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
name=visit.getPlace().getName().toString();
if (name!=null){
respond(name);
barstatus2();
}
}
@Override
protected void onStart() {
super.onStart();
placeEventListener= new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
name=visit.getPlace().getName();
if (name!=null){
respond(name);
barstatus2();
}
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.text_fragment, container,false);
text1 = (TextView)getActivity().findViewById(R.id.textF);
text1.setText("Press Start button to find buildings near you");
return view;
}