Java tutorial
/* * Copyright 2016 TIBCO Software,Inc.All rights reserved. * http://community.jaspersoft.com/project/jaspermobile-android * * Unless you have purchased a commercial license agreement from TIBCO Jaspersoft, * the following license terms apply: * * This program is part of TIBCO Jaspersoft Mobile for Android. * * TIBCO Jaspersoft Mobile is free software:you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation,either version 3of the License,or * (at your option)any later version. * * TIBCO Jaspersoft Mobile is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY;without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with TIBCO Jaspersoft Mobile for Android.If not,see * <http://www.gnu.org/licenses/lgpl>. */ package com.jaspersoft.android.jaspermobile.dialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.FragmentManager; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import com.jaspersoft.android.jaspermobile.R; import com.jaspersoft.android.jaspermobile.util.SimpleTextWatcher; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.SystemService; /** * @author Andrew Tivodar * @since 2.2 */ public class ValueInputDialogFragment extends BaseDialogFragment implements DialogInterface.OnShowListener { private final static String LABEL_ARG = "label"; private final static String VALUE_ARG = "value"; private final static String REQUIRED_ARG = "required"; private EditText icValue; private String mLabel; private String mValue; private boolean mRequired; AlertDialog mValueDialog; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final View customLayout = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_ic_value, null); icValue = (EditText) customLayout.findViewById(R.id.icValue); icValue.setText(""); icValue.append(mValue); icValue.addTextChangedListener(new SimpleTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { super.onTextChanged(s, start, before, count); icValue.setError(null); } }); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setView(customLayout); builder.setTitle(mLabel); builder.setCancelable(false); builder.setPositiveButton(R.string.ok, null); builder.setNegativeButton(R.string.cancel, null); mValueDialog = builder.create(); mValueDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); mValueDialog.setOnShowListener(this); return mValueDialog; } @Override public void onShow(DialogInterface dialog) { final Button positiveBnt = mValueDialog.getButton(AlertDialog.BUTTON_POSITIVE); positiveBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String newIcValue = ValueInputDialogFragment.this.icValue.getText().toString().trim(); if (mRequired && newIcValue.isEmpty()) { icValue.setError(getString(R.string.sr_error_field_is_empty)); return; } if (mDialogListener != null) { ((ValueDialogCallback) mDialogListener).onTextValueEntered(requestCode, newIcValue); } mValueDialog.dismiss(); } }); } @Override protected Class<ValueDialogCallback> getDialogCallbackClass() { return ValueDialogCallback.class; } @Override protected void initDialogParams() { super.initDialogParams(); Bundle args = getArguments(); if (args != null) { if (args.containsKey(LABEL_ARG)) { mLabel = args.getString(LABEL_ARG); } if (args.containsKey(VALUE_ARG)) { mValue = args.getString(VALUE_ARG); } if (args.containsKey(REQUIRED_ARG)) { mRequired = args.getBoolean(REQUIRED_ARG); } } } public static ValueInputDialogFragmentBuilder createBuilder(FragmentManager fragmentManager) { return new ValueInputDialogFragmentBuilder(fragmentManager); } //--------------------------------------------------------------------- // Dialog Builder //--------------------------------------------------------------------- public static class ValueInputDialogFragmentBuilder extends BaseDialogFragmentBuilder<ValueInputDialogFragment> { public ValueInputDialogFragmentBuilder(FragmentManager fragmentManager) { super(fragmentManager); } public ValueInputDialogFragmentBuilder setLabel(String label) { args.putString(LABEL_ARG, label); return this; } public ValueInputDialogFragmentBuilder setValue(String value) { args.putString(VALUE_ARG, value); return this; } public ValueInputDialogFragmentBuilder setRequired(boolean required) { args.putBoolean(REQUIRED_ARG, required); return this; } @Override protected ValueInputDialogFragment build() { return new ValueInputDialogFragment(); } } //--------------------------------------------------------------------- // Dialog Callback //--------------------------------------------------------------------- public interface ValueDialogCallback extends DialogClickListener { void onTextValueEntered(int requestCode, String name); } }