我有奇怪的故障,我很难用语言来解释。所以录制了这个视频来展示它。FAB 打开一个具有 EditText 和确认按钮的活动。当您按下确认按钮时,写入 EditText 的名称将被添加到库片段中的 RecyclerView 中。但是,如果您不向 EditText 写入任何内容并按确认,它将添加“Johan”。但问题是,如果您甚至没有单击 EditText,它会将 Johan 添加到 ArrayList 但在您“正确”添加另一个名称或重新启动 Players 活动之前它不会显示它。
图书馆片段:
public class SetupplayerLibraryFragment extends Fragment {
private static String TAG = "SetupplayerLibraryFragment";
static View view;
InternalOperator IO;
RecyclerView libraryList;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager manager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
view = inflater.inflate(R.layout.fragment_setupplayer_library, container, false);
libraryList = view.findViewById(R.id.libraryList);
libraryList.addItemDecoration(new DividerItemDecoration(libraryList.getContext(), DividerItemDecoration.VERTICAL));
manager = new LinearLayoutManager(getActivity());
adapter = new PlayerAdapter(IO.players);
libraryList.setLayoutManager(manager);
libraryList.setAdapter(adapter);
return view;
}
}
新玩家活动:
public class SetupplayerAddActivity extends AppCompatActivity {
private static String TAG = "SetupplayerAddActivity";
EditText nameText;
Button confirmButton;
Toolbar toolbar;
InternalOperator IO;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setupplayer_add);
nameText = findViewById(R.id.text_add_name);
confirmButton = findViewById(R.id.button_add_confirm);
confirmButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (nameText.getText().length() != 0) {
if (ContextCompat.checkSelfPermission(SetupplayerAddActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
nameText.clearComposingText();
ExternalOperator.savePlayers(nameText.getText().toString());
IO.players.add(new Player(nameText.getText().toString(), 0));
finish();
} else {
Toast.makeText(SetupplayerAddActivity.this, "Permission to use storage is needed for this action!", Toast.LENGTH_SHORT).show();
}
} else {
if (ContextCompat.checkSelfPermission(SetupplayerAddActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
ExternalOperator.savePlayers("Johan");
IO.players.add(new Player("Johan", 0));
finish();//Activityi kapıyor
} else {
Toast.makeText(SetupplayerAddActivity.this, "You are really the Johan! Radiance save us!", Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
我删除了一些无用的代码以使其更清晰。