小编Jos*_*ett的帖子

如何确保我的微调器(内部菜单)更新我的菜单标题并确保完整显示标题?

编辑:重新设置模拟器后,代码工作正常,选择微调项时标题会立即更新。但是,标题仍未完整显示

编辑 2:再次重新设置模拟器后,我再次遇到相同的问题......

我试图在我的菜单中为我的recordExerciseActivity.

记录运动活动

每次选择微调器内的项目时,都会将其设置为新的菜单标题。

我遇到的问题是,第一次打开活动并单击微调项时,标题没有更新。(onItemSelected代码不运行)

但是,第二次它工作得很好。

此外,在练习名称很长的活动中,它只显示前几个字母。

2

有时只有第一个字母...

3

如何确保微调器每次都正确更新我的菜单标题?(也显示完整的标题)。

菜单 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)

java android android-xml android-menu

10
推荐指数
1
解决办法
211
查看次数

当 getView() 为 null 时无法访问 Fragment View 的 LifecycleOwner

我试图从我的 .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

3
推荐指数
1
解决办法
6800
查看次数

然而,试图对对象列表进行排序:java: int 不能被取消引用

所以我有一个对象 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)

java

0
推荐指数
2
解决办法
80
查看次数