Java 在Android中编辑文本到分级栏
这是我在这里的第一个问题,所以我想请你不要对我太苛刻,如果我违反了一些规则,等等 我正在开发一个带有评级条的Android项目。我试图从edittext中获取一个数字,并将其值传递给分级栏。我遇到了一个nullpointerexception,无法通过,任何帮助都将不胜感激 以下是相关代码的部分:Java 在Android中编辑文本到分级栏,java,android,listview,Java,Android,Listview,这是我在这里的第一个问题,所以我想请你不要对我太苛刻,如果我违反了一些规则,等等 我正在开发一个带有评级条的Android项目。我试图从edittext中获取一个数字,并将其值传递给分级栏。我遇到了一个nullpointerexception,无法通过,任何帮助都将不胜感激 以下是相关代码的部分: public void bindView(View movieView, Context context, Cursor cursor) { final Movie
public void bindView(View movieView, Context context, Cursor cursor)
{
final Movie movie = new Movie(cursor);
Holder holder = (Holder)movieView.getTag();
holder.setMovie(movie);
TextView movieTitleText = (TextView)movieView.findViewById(R.id.movieTitleText);
TextView movieDescriptionText = (TextView)movieView.findViewById(R.id.movieDescriptionText);
RatingBar rb = (RatingBar)movieView.findViewById(R.id.movieRatingBar);
rb.setNumStars(5);
rb.setMax(5);
rb.setRating(2.4F);
rb.setEnabled(false);
rb.setFocusable(false);
float numRate = 0;
numRate = Float.parseFloat(movie.getRating().toString());
rb.setRating(numRate);
movieTitleText.setText(movie.getTitle());
movieDescriptionText.setText(movie.getDescription());
movieView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Short click", Toast.LENGTH_LONG).show();
Intent editIntent = new Intent(MoviesActivity.this, EditMovieActivity.class);
editIntent.putExtra("isNew",false);
editIntent.putExtra("title", movie.getTitle());
editIntent.putExtra("description", movie.getDescription());
editIntent.putExtra("year", movie.getYear());
editIntent.putExtra("rating", movie.getRating());
editIntent.putExtra("rottenId", movie.getRottenId());
editIntent.putExtra("smallImage", movie.getSmallImage());
editIntent.putExtra("largeImage", movie.getLargeImage());
startActivityForResult(editIntent,EDIT_MOVIE_REQUEST_CODE);
}
});
movieView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(final View v) {
Toast.makeText(getApplicationContext(), "Long click", Toast.LENGTH_LONG).show();
AlertDialog.Builder editBuilder = new AlertDialog.Builder(MoviesActivity.this);
editBuilder.setTitle("Edit or Clear Movie").setMessage("Please choose either to clear or to edit the movie");
editBuilder.setPositiveButton("Edit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent editIntent = new Intent(MoviesActivity.this, EditMovieActivity.class);
editIntent.putExtra("isNew",false);
editIntent.putExtra("title", movie.getTitle());
editIntent.putExtra("description", movie.getDescription());
editIntent.putExtra("year", movie.getYear());
editIntent.putExtra("rating", movie.getRating());
editIntent.putExtra("rottenId", movie.getRottenId());
editIntent.putExtra("smallImage", movie.getSmallImage());
editIntent.putExtra("largeImage", movie.getLargeImage());
startActivityForResult(editIntent,EDIT_MOVIE_REQUEST_CODE);
}
});
editBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
Builder setNeutralButton = editBuilder.setNeutralButton("Clear movie", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.deleteMovie(movie.getId());
moviesCursor = handler.getAllMoviesCursor();
adapter.swapCursor(moviesCursor);
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "Movie deleted", Toast.LENGTH_LONG).show();
}
});
editBuilder.show();
return true;
}
});
}
这是堆栈跟踪:
09-16 03:41:28.912: E/AndroidRuntime(1248): FATAL EXCEPTION: main
09-16 03:41:28.912: E/AndroidRuntime(1248): java.lang.NullPointerException
09-16 03:41:28.912: E/AndroidRuntime(1248): at com.rotten.tomatoes.MoviesActivity$MyCursorAdapter.bindView(MoviesActivity.java:209)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:256)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.AbsListView.obtainView(AbsListView.java:2033)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.ListView.makeAndAddView(ListView.java:1772)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.ListView.fillDown(ListView.java:672)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.ListView.fillFromTop(ListView.java:732)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.ListView.layoutChildren(ListView.java:1625)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.AbsListView.onLayout(AbsListView.java:1863)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.View.layout(View.java:11278)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewGroup.layout(ViewGroup.java:4224)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.View.layout(View.java:11278)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewGroup.layout(ViewGroup.java:4224)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.View.layout(View.java:11278)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewGroup.layout(ViewGroup.java:4224)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.View.layout(View.java:11278)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewGroup.layout(ViewGroup.java:4224)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.View.layout(View.java:11278)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewGroup.layout(ViewGroup.java:4224)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.os.Looper.loop(Looper.java:137)
09-16 03:41:28.912: E/AndroidRuntime(1248): at android.app.ActivityThread.main(ActivityThread.java:4424)
09-16 03:41:28.912: E/AndroidRuntime(1248): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 03:41:28.912: E/AndroidRuntime(1248): at java.lang.reflect.Method.invoke(Method.java:511)
09-16 03:41:28.912: E/AndroidRuntime(1248): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-16 03:41:28.912: E/AndroidRuntime(1248): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-16 03:41:28.912: E/AndroidRuntime(1248): at dalvik.system.NativeStart.main(Native Method)
非常感谢 哪一行导致错误我认为是这些行:float numRate=0;numRate=Float.parseFloat(movie.getRating().toString());rb.设定值(numRate);它是在你的日志中显示的,只需单击它,它就会将你重定向到该行。我知道,我在日志中显示的209左右发布了这些行,谢谢!具体来说,第209行是什么?