编辑:重新设置模拟器后,代码工作正常,选择微调项时标题会立即更新。但是,标题仍未完整显示
编辑 2:再次重新设置模拟器后,我再次遇到相同的问题......
我试图在我的菜单中为我的recordExerciseActivity.
每次选择微调器内的项目时,都会将其设置为新的菜单标题。
我遇到的问题是,第一次打开活动并单击微调项时,标题没有更新。(onItemSelected代码不运行)
但是,第二次它工作得很好。
此外,在练习名称很长的活动中,它只显示前几个字母。
有时只有第一个字母...
如何确保微调器每次都正确更新我的菜单标题?(也显示完整的标题)。
菜单 XML
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/spinner"
android:background="#ffffff"
app:actionViewClass="android.widget.Spinner"
app:showAsAction="always"
android:title="spinner Title" />
</menu>
Run Code Online (Sandbox Code Playgroud)
记录练习活动
public class RecordExerciseActivity2 extends AppCompatActivity {
List<String> allChildExerciseNames = new ArrayList<>();
public static final String PARENT_EXERCISE_ID = "-999";
public static final String EXTRA_DATE = "com.example.exerciseappv4.EXTRA_DATE";
public static final String EXTRA_WEEK_DATES = "1";
public static String EXTRA_JUNCTIONID = "EXERCISE_JUNCTION_ID";
int parentExerciseID;
private ChildExerciseViewModel childExerciseViewModel;
String firstExerciseName;
@Override
protected void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) 我试图从我的 .ROOM 数据库中观察所有练习名称的列表AlertDialog。
但是我收到以下错误消息:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Application android.app.Activity.getApplication()' on a null object reference
错误消息出现在这里:
childExerciseViewModel = ViewModelProviders.of((FragmentActivity) context).get(ChildExerciseViewModel.class);
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免这个错误?
添加练习对话框
public class AddExerciseDialog extends AppCompatDialogFragment {
private EditText editTextExerciseName;
private ChildExerciseViewModel childExerciseViewModel;
String userEnteredExerciseName;
int exerciseTypeID;
Button cancelBtn;
Button addBtn;
Context context;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
childExerciseViewModel = ViewModelProviders.of((FragmentActivity) context).get(ChildExerciseViewModel.class);
//return view;
return inflater.inflate(R.layout.layout_dialog_add_exercise, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable …Run Code Online (Sandbox Code Playgroud) java android android-alertdialog android-livedata android-viewmodel
所以我有一个对象 TeamStats。
我希望能够对 teamStats 列表进行排序,gamesWon但是,当我尝试实现如下所示的 compareTo 方法时,我收到错误消息:java: int cannot be dereferenced。
我不知道为什么会这样,因为我正在关注这个 ArrayList 排序教程,他们似乎没有同样的问题。
为什么我会收到此错误以及如何避免它?
package sample;
import java.util.Comparator;
public class TeamStats implements Comparator<TeamStats> {
int teamID;
int gamesPlayed;
int gamesWon;
int setsWon;
public TeamStats(int teamID, int gamesPlayed, int gamesWon, int setsWon) {
this.teamID = teamID;
this.gamesPlayed = gamesPlayed;
this.gamesWon = gamesWon;
this.setsWon = setsWon;
}
public int getTeamID() {
return teamID;
}
public void setTeamID(int teamID) {
this.teamID = teamID;
}
public int …Run Code Online (Sandbox Code Playgroud)