如何在点击按钮时增加数字?

时间:2017-10-27 12:11:51

标签: java android

在我的应用中,我有一个用户点击的表单"添加"然后用户填写表格。 (每次用户选择"添加"

时,表单都是相同的

我想要的是拥有一个"工作号码"每次创建新表单时都会增加。

我无法使用此功能,并尝试了几乎所有我可以在此处和Google中找到的解决方案。

这是我的代码:

这在我的CreateOrEditForm.java类

EditText jobnumberEditText;

String newKey;
int code = 0;
.....

jobnumberEditText = (EditText) findViewById(R.id.editTextJobnumber);
    if(code <= 0){
        code = 1;
    }else{
        code++;
    }
    newKey = "000" + code;
    jobnumberEditText.setText("000" + code);

和我的MainForm.java类

Button button = (Button) findViewById(R.id.addNew);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(JobCardMainActivity.this, CreateOrEditJobCards.class);
            intent.putExtra(KEY_EXTRA_CONTACT_ID, 0);
            startActivity(intent);

        }
    });

现在发生的事情是,当用户点击添加时,数字不会增加并保持在1

有人可以帮忙吗?

提前致谢。

修改

该应用包含所创建的各种表单的列表视图,其下方包含&#34; add&#34;按钮

 jobnumberEditText.setText(getIntent().getStringExtra("counter"));

在上一课:

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

            Intent intent = new Intent(JobCardMainActivity.this, CreateOrEditJobCards.class);
            intent.putExtra(KEY_EXTRA_CONTACT_ID, 0);
            count++;
            intent.putExtra("counter", count);
            startActivity(intent);

        }
    });

编辑2

我找到了一个让它递增的解决方案,但是当我点击列表视图中的表单删除时,它也会计算。例如,当我点击&#34;添加&#34;创建表单它给了我一些0001我然后保存表单。当我进入该表单删除它并创建一个新的数字将是0003而不是0002。

请参阅以下代码:

SharedPreferences sp = getSharedPreferences("key_code", MODE_PRIVATE);
    int code = sp.getInt("code",0);

    if(code <= 0){
        code = 1;
    }else{
        code++;
    }
    sp.edit().putInt("code",code).commit();
    newKey = "000" + code;

    Button button = (Button) findViewById(R.id.addNew);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(JobCardMainActivity.this, CreateOrEditJobCards.class);
            intent.putExtra(KEY_EXTRA_CONTACT_ID, 0);
            intent.putExtra("000",newKey);

            startActivity(intent);

        }
    });

然后在我的另一堂课:

jobnumberEditText = (EditText) findViewById(R.id.editTextJobnumber);
    jobnumberEditText.setText(getIntent().getStringExtra("000"));

2 个答案:

答案 0 :(得分:2)

当用户点击按钮时总是需要增加数字,所以在侦听器中移动代码,否则code将在oncreate中增加一次并保持不变

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            incrementCountAndDisplay();
            Intent intent = new Intent(JobCardMainActivity.this, CreateOrEditJobCards.class);
            intent.putExtra(KEY_EXTRA_CONTACT_ID, 0);
            //intent.putExtra("counter", newKey);
            intent.putExtra("counter", String.ValueOf(count));
            startActivity(intent);

        }
    });

// separate function for code clarity
void incrementCountAndDisplay(){
     code++;
     newKey = "000" + code;
     jobnumberEditText.setText(newKey); // use newKey
}        

修改:您需要使用String密钥发送int而不是counter,因此在将数据放入String.ValueOf(count)时使用intent或者您可以获取int使用getIntExtra但最终需要一个字符串,因此传递一个字符串

答案 1 :(得分:0)

Button button = (Button) findViewById(R.id.addNew);
int count =0;
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(JobCardMainActivity.this, CreateOrEditJobCards.class);
        count++;
        intent.putExtra(KEY_EXTRA_CONTACT_ID, count);
        startActivity(intent);

    }
});

当你收到这些数据时:

EditText jobnumberEditText;


String newKey;
// you can also use your already defined intent 
int code = getIntent().getStringExtra(KEY_EXTRA_CONTACT_ID);
.....

jobnumberEditText = (EditText) findViewById(R.id.editTextJobnumber);
newKey = "000" + code;
jobnumberEditText.setText("000" + code);