0
我只有一個片段附加到使用replace的活動。當設備在幾秒鐘後鎖定屏幕,然後解鎖它時,即使片段視圖(EditTexts等)和微調器所選項目保持不變,分配給某個微調器的onItemSelected方法也會被執行。如何停止onItem從鎖定屏幕返回時被選中執行
public class MyFragment extends Fragment {
private Spinner mySpinner;
public static MyFragment newInstance() {
return new MyFragment();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.some_layout, container, false);
mySpinner = (Spinner)view.findViewById(R.id.my_spinner);
List<String> items = new ArrayList<>();
items.add("Anything");
items.add("Anything");
items.add("Anything");
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(
getContext(),
android.R.layout.simple_spinner_item,
items);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getContext(), "Hello World", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
}
我每次選擇一個項目我得到的消息敬酒的「Hello World」(或分配給聽衆任何其他方法或動作),但是當設備鎖,然後我解開,我仍然得到該消息好像調用了onItemSelected方法。
我一直在嘗試使用布爾值和Fragment的onSaveInstanceState和onActivityCreated方法,但我還沒有想出一種方法來停止onItemSelected方法執行時,設備從鎖定屏幕返回。
你有什麼打算?你不可能希望微調者最終發出祝酒詞。你可能會設置一些價值,然後才能使用。例如你可能會做一些像'myspinnerselecteditem = my.Spnner.getSecltedItem()'在這種情況下,它會被重複設置多次? – MikeT
是的,微調器根據選定的項目執行不同的操作,但沒關係,因爲我的問題是onItemSelected從鎖定屏幕返回時執行。 – FerDensetsu