【发布时间】:2013-04-24 05:30:27
【问题描述】:
我正在尝试构建一个允许您输入文本,然后将文本传输到主屏幕的 android 应用程序。它允许我毫无问题地构建自动完成功能,但是每当我尝试调用 getText() 函数时,整个程序都会崩溃。任何帮助将不胜感激,谢谢
public class TeamFragment extends DialogFragment {
TextView team1, team2, score1, score2;
AutoCompleteTextView team1input;
public TeamFragment(View t1, View t2, View s1, View s2) {
team1=(TextView) t1;
team2=(TextView) t2;
score1=(TextView) s1;
score2=(TextView) s2;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.team_score_layout, container);
//mEditText = (EditText) view.findViewById(R.id.txt_your_name);
getDialog().setTitle("Enter Team Name");
Button b = (Button) view.findViewById(R.id.teamButton);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
team1input=(AutoCompleteTextView) v.findViewById(R.id.autoCompleteTeam1);
team1input.getText(); //crashes here
team1.setText("hi");
dismiss();
}
});
return view;
}
}
这是 logCat,我似乎遇到了空指针异常。
04-23 13:12:33.628: E/AndroidRuntime(902): FATAL EXCEPTION: main
04-23 13:12:33.628: E/AndroidRuntime(902): java.lang.NullPointerException
04-23 13:12:33.628: E/AndroidRuntime(902): at com.example.ucsb.cs.cs185.dimberman.nba.TeamFragment$1.onClick(TeamFragment.java:42)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.view.View.performClick(View.java:2485)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.view.View$PerformClick.run(View.java:9080)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.os.Handler.handleCallback(Handler.java:587)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.os.Looper.loop(Looper.java:123)
04-23 13:12:33.628: E/AndroidRuntime(902): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-23 13:12:33.628: E/AndroidRuntime(902): at java.lang.reflect.Method.invokeNative(Native Method)
04-23 13:12:33.628: E/AndroidRuntime(902): at java.lang.reflect.Method.invoke(Method.java:507)
04-23 13:12:33.628: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-23 13:12:33.628: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-23 13:12:33.628: E/AndroidRuntime(902): at dalvik.system.NativeStart.main(Native Method)
`
【问题讨论】:
-
您应该提供日志猫。顺便说一句,您的实现对我来说似乎很奇怪,为什么要将 View 作为参数传递给 TeamFragment 构造函数?
-
很可能您在
onClick中的findViewById不起作用,因为您将OnClickListener 放到了按钮上。 -
我遇到了一些问题,因为 findViewByID 主要访问主要的 XML 文件,因此每当我尝试从片段中访问这些文件时,都会遇到奇怪的错误。我现在将添加日志。
-
经过进一步测试,似乎出于某种原因,我的 findviewbyid 返回了一个空指针。
标签: android gettext autocompletetextview