Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在进程的edittext中仅获取数字而不是逗号_Android_Numbers_Format_Textwatcher - Fatal编程技术网

Android 在进程的edittext中仅获取数字而不是逗号

Android 在进程的edittext中仅获取数字而不是逗号,android,numbers,format,textwatcher,Android,Numbers,Format,Textwatcher,我有这个代码从我的EditText输入中检测数字格式 public class NumberTextWatcher implements TextWatcher { private DecimalFormat df; private DecimalFormat dfnd; private boolean hasFractionalPart; private EditText et; public NumberTextWatcher(EditText

我有这个代码从我的EditText输入中检测数字格式

public class NumberTextWatcher implements TextWatcher {

    private DecimalFormat df;
    private DecimalFormat dfnd;
    private boolean hasFractionalPart;

    private EditText et;

    public NumberTextWatcher(EditText et)
    {
        df = new DecimalFormat("#,###.##");
        df.setDecimalSeparatorAlwaysShown(true);
        dfnd = new DecimalFormat("#,###");
        this.et = et;
        hasFractionalPart = false;
    }

    @SuppressWarnings("unused")
    private static final String TAG = "NumberTextWatcher";

    @Override
    public void afterTextChanged(Editable s)
    {
        et.removeTextChangedListener(this);

        try {
            int inilen, endlen;
            inilen = et.getText().length();

            String v = s.toString().replace(String.valueOf(df.getDecimalFormatSymbols().getGroupingSeparator()), "");
            Number n = df.parse(v);
            int cp = et.getSelectionStart();
            if (hasFractionalPart) {
                et.setText(df.format(n));
            } else {
                et.setText(dfnd.format(n));
            }
            endlen = et.getText().length();
            int sel = (cp + (endlen - inilen));
            if (sel > 0 && sel <= et.getText().length()) {
                et.setSelection(sel);
            } else {
                // place cursor at the end?
                et.setSelection(et.getText().length() - 1);
            }
        } catch (NumberFormatException nfe) {
            // do nothing?
        } catch (ParseException e) {
            // do nothing?
        }

        et.addTextChangedListener(this);
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {
        if (s.toString().contains(String.valueOf(df.getDecimalFormatSymbols().getDecimalSeparator())))
        {
            hasFractionalPart = true;
        } else {
            hasFractionalPart = false;
        }
    }

}
如果我输入字段,它将产生5000。我想要的是当我点击按钮时,值5000变成5000,然后插入到我的数据库中。因为我在数据库中设置了INT

任何帮助都很好。谢谢

====================== 更新

添加此代码

String data = JumlahTrx.getText().toString();
data=data.replaceAll(",","");
int value=Integer.parseInt(data);
JumlahTrx.setText(value);
当点击按钮将其保存到数据库中时出现此错误

11-26 20:27:54.441 2609-2609/com.androidjson.serverupdate_androidjsoncom E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.androidjson.serverupdate_androidjsoncom,PID:2609 android.content.res.Resources$NotFoundException:字符串资源ID#0x61a8 位于android.content.res.Resources.getText(Resources.java:335) 位于android.widget.TextView.setText(TextView.java:4555) 在com.androidjson.serverupdate\u androidjsoncom.MainActivity.StudentRegistration(MainActivity.java:120) 在com.androidjson.serverupdate_androidjsoncom.MainActivity$1.onClick(MainActivity.java:53) 在android.view.view.performClick上(view.java:5657) 在android.view.view$PerformClick.run(view.java:22453) 位于android.os.Handler.handleCallback(Handler.java:751) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:154) 位于android.app.ActivityThread.main(ActivityThread.java:6236) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)

=============更新2====================

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    JenisTrx = (EditText)findViewById(R.id.editJenis);
    KeteranganTrx = (EditText)findViewById(R.id.editKeterangan);
    JumlahTrx = (EditText)findViewById(R.id.editJumlah);
    JumlahTrx.addTextChangedListener(new NumberTextWatcher(JumlahTrx));


    RegisterStudent = (Button)findViewById(R.id.buttonSubmit);
    ShowStudents = (Button)findViewById(R.id.buttonShow);

    RegisterStudent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            // Checking whether EditText is Empty or Not
            CheckEditTextIsEmptyOrNot();

            if(CheckEditText){

                // If EditText is not empty and CheckEditText = True then this block will execute.

                StudentRegistration(JenisTrxHolder,KeteranganTrxHolder, JumlahTrxHolder);

            }
            else {

                // If EditText is empty then this block will execute .
                Toast.makeText(MainActivity.this, "Please fill all form fields.", Toast.LENGTH_LONG).show();

            }

        }
    });

    ShowStudents.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            Intent intent = new Intent(getApplicationContext(),ShowAllStudentsActivity.class);

            startActivity(intent);

        }
    });
 }

public void StudentRegistration(final String S_Jenis, final String S_Keterangan, final String S_Jumlah){

    class StudentRegistrationClass extends AsyncTask<String,Void,String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            progressDialog = ProgressDialog.show(MainActivity.this,"Loading Data",null,true,true);
        }

        @Override
        protected void onPostExecute(String httpResponseMsg) {

            super.onPostExecute(httpResponseMsg);
            String a = JumlahTrx.getText().toString();
            a=a.replaceAll(",","");
            JumlahTrx.setText(a);
            System.out.println( a );
            progressDialog.dismiss();

            Toast.makeText(MainActivity.this,httpResponseMsg.toString(), Toast.LENGTH_LONG).show();

        }

        @Override
        protected String doInBackground(String... params) {

            hashMap.put("JenisTrx",params[0]);

            hashMap.put("KeteranganTrx",params[1]);

            hashMap.put("JumlahTrx",params[2]);

            finalResult = httpParse.postRequest(hashMap, HttpURL);

            return finalResult;
        }
    }

    StudentRegistrationClass studentRegistrationClass = new StudentRegistrationClass();

    studentRegistrationClass.execute(S_Jenis,S_Keterangan,S_Jumlah);
}

public void CheckEditTextIsEmptyOrNot(){

    JenisTrxHolder = JenisTrx.getText().toString();
    KeteranganTrxHolder = KeteranganTrx.getText().toString();
    JumlahTrxHolder = JumlahTrx.getText().toString();

    if(TextUtils.isEmpty(JenisTrxHolder) || TextUtils.isEmpty(KeteranganTrxHolder) || TextUtils.isEmpty(JumlahTrxHolder))
    {

        CheckEditText = false;

    }
    else {

        CheckEditText = true ;
    }

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JenisTrx=(EditText)findViewById(R.id.editJenis);
KeternantRx=(EditText)findViewById(R.id.EditKeternan);
JumlahTrx=(EditText)findViewById(R.id.editJumlah);
addTextChangedListener(新的NumberTextWatcher(JumlahTrx));
RegisterStudent=(按钮)findViewById(R.id.buttonSubmit);
ShowStudents=(按钮)findViewById(R.id.buttonShow);
RegisterStudent.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//检查EditText是否为空
CheckEditTextIsEmptyOrNot();
如果(检查编辑文本){
//如果EditText不为空且CheckEditText=True,则将执行此块。
学生注册(Jenistrxhold、Keterangantrxhold、Jumlahtrxhold);
}
否则{
//如果EditText为空,则将执行此块。
Toast.makeText(MainActivity.this,“请填写所有表单字段”,Toast.LENGTH_LONG.show();
}
}
});
ShowStudents.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent Intent=new Intent(getApplicationContext(),ShowAllStudentsActivity.class);
星触觉(意向);
}
});
}
公共无效学生注册(最终字符串S_Jenis、最终字符串S_Keterangan、最终字符串S_Jumlah){
类StudentRegistrationClass扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=progressDialog.show(MainActivity.this,“加载数据”,null,true,true);
}
@凌驾
受保护的void onPostExecute(字符串httpResponseMsg){
super.onPostExecute(httpResponseMsg);
字符串a=JumlahTrx.getText().toString();
a=a.replaceAll(“,”,”);
JumlahTrx.setText(a);
系统输出打印项次(a);
progressDialog.disclose();
Toast.makeText(MainActivity.this,httpResponseMsg.toString(),Toast.LENGTH_LONG.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
put(“JenisTrx”,参数[0]);
hashMap.put(“ketrangantrx”,参数[1]);
hashMap.put(“JumlahTrx”,params[2]);
finalResult=httpParse.postRequest(hashMap,HttpURL);
返回最终结果;
}
}
StudentRegistrationClass StudentRegistrationClass=新StudentRegistrationClass();
studentRegistrationClass.execute(S_Jenis、S_Keterangan、S_Jumlah);
}
公共无效CheckEditTextIsEmptyOrNot(){
JenisTrxHolder=JenisTrx.getText().toString();
凯特兰甘特霍尔德酒店
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    JenisTrx = (EditText)findViewById(R.id.editJenis);
    KeteranganTrx = (EditText)findViewById(R.id.editKeterangan);
    JumlahTrx = (EditText)findViewById(R.id.editJumlah);
    JumlahTrx.addTextChangedListener(new NumberTextWatcher(JumlahTrx));


    RegisterStudent = (Button)findViewById(R.id.buttonSubmit);
    ShowStudents = (Button)findViewById(R.id.buttonShow);

    RegisterStudent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            // Checking whether EditText is Empty or Not
            CheckEditTextIsEmptyOrNot();

            if(CheckEditText){

                // If EditText is not empty and CheckEditText = True then this block will execute.

                StudentRegistration(JenisTrxHolder,KeteranganTrxHolder, JumlahTrxHolder);

            }
            else {

                // If EditText is empty then this block will execute .
                Toast.makeText(MainActivity.this, "Please fill all form fields.", Toast.LENGTH_LONG).show();

            }

        }
    });

    ShowStudents.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            Intent intent = new Intent(getApplicationContext(),ShowAllStudentsActivity.class);

            startActivity(intent);

        }
    });
 }

public void StudentRegistration(final String S_Jenis, final String S_Keterangan, final String S_Jumlah){

    class StudentRegistrationClass extends AsyncTask<String,Void,String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            progressDialog = ProgressDialog.show(MainActivity.this,"Loading Data",null,true,true);
        }

        @Override
        protected void onPostExecute(String httpResponseMsg) {

            super.onPostExecute(httpResponseMsg);
            String a = JumlahTrx.getText().toString();
            a=a.replaceAll(",","");
            JumlahTrx.setText(a);
            System.out.println( a );
            progressDialog.dismiss();

            Toast.makeText(MainActivity.this,httpResponseMsg.toString(), Toast.LENGTH_LONG).show();

        }

        @Override
        protected String doInBackground(String... params) {

            hashMap.put("JenisTrx",params[0]);

            hashMap.put("KeteranganTrx",params[1]);

            hashMap.put("JumlahTrx",params[2]);

            finalResult = httpParse.postRequest(hashMap, HttpURL);

            return finalResult;
        }
    }

    StudentRegistrationClass studentRegistrationClass = new StudentRegistrationClass();

    studentRegistrationClass.execute(S_Jenis,S_Keterangan,S_Jumlah);
}

public void CheckEditTextIsEmptyOrNot(){

    JenisTrxHolder = JenisTrx.getText().toString();
    KeteranganTrxHolder = KeteranganTrx.getText().toString();
    JumlahTrxHolder = JumlahTrx.getText().toString();

    if(TextUtils.isEmpty(JenisTrxHolder) || TextUtils.isEmpty(KeteranganTrxHolder) || TextUtils.isEmpty(JumlahTrxHolder))
    {

        CheckEditText = false;

    }
    else {

        CheckEditText = true ;
    }

}
String data = "5,000";
data= data.replaceAll(",","");

Int value = Integer.parseInt(data);
hashMap.put("JumlahTrx",params[2]);
 String a = params[2];
 a=a.replaceAll(",","");
 hashMap.put("JumlahTrx",a);
String a="5,00,000";

a=a.replaceAll(",","");

int num=Integer.parseInt(a);