簡體   English   中英

Android-單擊布局后EditText丟失內容

[英]Android - EditText loses content after clicking on layout

嗨,我有帶有RelativeLayout FrameLayout EditText放置在RelativeLayout 問題是,當我單擊EditText並在其中鍵入一些文本然后單擊布局時,鍵盤消失了(假設我沒有擊中另一個EditText而是RelativeLayout ), EditText的內容消失了。

第一個問題是為什么它會消失,第二個問題,即使我單擊EditText之外,如何存儲用EditText編寫的數據?

單擊布局之前

在此處輸入圖片說明

單擊布局后

在此處輸入圖片說明

@firegloves當然,這是該片段的托管活動

    public class AddTicketActivity extends AppCompatActivity {

private Toolbar toolbar;
private DatePicker datePicker;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_ticket);
    datePicker = (DatePicker) findViewById(R.id.datePicker);
    toolbar = (Toolbar) findViewById(R.id.toolbar);


    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);


    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(AddTicketActivity.this, MainActivity.class);
            startActivity(intent);
        }
    });

    Calendar calendar= Calendar.getInstance();
       MyOnDateChangeListener onDateChangeListener = new MyOnDateChangeListener();
            datePicker.init(calendar.get(Calendar.YEAR),
            calendar.get(Calendar.MONTH),
            calendar.get(Calendar.DAY_OF_MONTH), onDateChangeListener);


}

public class MyOnDateChangeListener implements DatePicker.OnDateChangedListener {



    @Override
    public void onDateChanged(DatePicker view, int year, int month, int day) {
        int monthNumber= month+1;
        int yearNumber= year;
        int dayNumber = day;
        String date = String.valueOf(yearNumber)+"/"+String.valueOf(monthNumber)+"/"+String.valueOf(dayNumber);

        Fragment fragment = null;
        fragment = new AddTicketFragment();
        Bundle bundle = new Bundle();
        bundle.putString("date",date);
        fragment.setArguments(bundle);
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.relativeReplace, fragment).addToBackStack("AddTicketActivity").commit();

    }


}


}

這是片段

    public class AddTicketFragment extends Fragment {





private NumberPicker numberPicker;
private EditText deposit;
private EditText rate;
private EditText possibleWin;
private FloatingActionButton submit;
private Context context;
private Toolbar toolbar;

public AddTicketFragment() {
    // Required empty public constructor
}




@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState)
{

    View view = inflater.inflate(R.layout.fragment_add_ticket,container,false);
    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    toolbar = (Toolbar) view.findViewById(R.id.toolbar_fragment_Add);
    numberPicker =(NumberPicker) view.findViewById(R.id.numberOfMatches);
    deposit =(EditText) view.findViewById(R.id.deposit);
    rate= (EditText) view.findViewById(R.id.rate);
    possibleWin = (EditText) view.findViewById(R.id.win);
    submit =(FloatingActionButton) view.findViewById(R.id.FAB2);

    context=getActivity().getApplicationContext();
    final DatabaseOperations db = new DatabaseOperations(context);
    db.getReadableDatabase();


    deposit.setGravity(Gravity.CENTER);
    rate.setGravity(Gravity.CENTER);
    possibleWin.setGravity(Gravity.CENTER);
    numberPicker.setMaxValue(30);
    numberPicker.setMinValue(1);
    numberPicker.setWrapSelectorWheel(true);











    ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);


            Bundle bundle = this.getArguments();
    final String dateNumber = bundle.getString("date",null);

    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!deposit.getText().toString().isEmpty()){
                if(!rate.getText().toString().isEmpty()){

                        String numberOfMatches= String.valueOf(numberPicker.getValue());
                        String depositNumber= String.valueOf(deposit.getText());
                        String rateNumber=String.valueOf(rate.getText());
                        float multiply = Float.valueOf(depositNumber)*Float.valueOf(rateNumber);

                        possibleWin.setText(String.valueOf(multiply));
                        String winNumber=String.valueOf(possibleWin.getText());

                        db.insertMatches(db,dateNumber,numberOfMatches,rateNumber,depositNumber,winNumber);
                        Toast.makeText(getActivity().getApplicationContext(), "Ticket has been added", Toast.LENGTH_LONG).show();

                        Intent i = new Intent(getActivity(), MainActivity.class);
                        startActivity(i);

                }
                else{
                    Toast.makeText(getActivity().getApplicationContext(), "You need to fill rate !", Toast.LENGTH_SHORT).show();
                }
            }
            else{
                Toast.makeText(getActivity().getApplicationContext(), "You need to fill deposit ! ", Toast.LENGTH_SHORT).show();
            }
        }
    });
    return view ;
    }



    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM