Ошибка проверки соответствия Android-java - необходимо исправить логику кода - PullRequest
0 голосов
/ 13 марта 2012

Это мой код примера страницы сбора сведений, где, как только клиент вводит свои данные, он будет храниться до следующей переустановки этого приложения, в коде нет ошибок, и он будет выполняться правильно, но клиент может перейти к следующему занятию без заполнения формы

и я попробовал немного проверок условий, но все они не прошли, нужна помощь в логике кода

    package asr.customer;

import java.io.File;
import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.content.ContentValues;
import android.text.Editable;
import android.database.sqlite.SQLiteDatabase;
import android.view.*;
import android.widget.*;

public class ASRCustomerAppActivity extends Activity implements Button.OnClickListener{
/** Called when the activity is first created. */
    Button btn;
    ContentValues values= new ContentValues();
    SQLiteDatabase db;
    String first,last,state,city,g;
    int day,month,year;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn=(Button)findViewById(R.id.save);
        btn.setOnClickListener(this);
        File dbtest =new File("/data/data/asr.customer/databases/customerdetail1.db");
        if(dbtest.exists())
        {
          // what to do if it does exist
            Intent intent=new Intent();
            intent.setClass(this,mapActivity.class);
            startActivity(intent);
            finish();
        }
        else
        {

           db=openOrCreateDatabase("customerdetail1.db",SQLiteDatabase.CREATE_IF_NECESSARY,null);

            db.setVersion(1);
            db.setLocale(Locale.getDefault());
            db.setLockingEnabled(true);
            final String table_create="CREATE TABLE customer("+"firstname TEXT,"+"lastname TEXT,"+"day INTEGER,"+"gender TEXT,"+"month INTEGER,"+"year INTEGER,"+"city TEXT,"+"state TEXT);";
            db.execSQL(table_create);
            EditText i2=(EditText)findViewById(R.id.first);
            first=i2.getText().toString();
            EditText i3=(EditText) findViewById(R.id.last1);
            last=i3.getText().toString();

            DatePicker d=(DatePicker) findViewById(R.id.date);
            day=d.getDayOfMonth();
            month= d.getMonth()+1;
            year=d.getYear();
            RadioGroup rg= (RadioGroup) findViewById(R.id.radiogroup);
            RadioButton r1= (RadioButton) findViewById(R.id.radioButton1);
            RadioButton r2= (RadioButton) findViewById(R.id.radioButton2);
            if(r1.isChecked()==true)
            {
            g=r1.getText().toString();
            }
            else
            {
            g= r2.getText().toString();
            }

            EditText i4=(EditText) findViewById(R.id.city);
            city=i4.getText().toString();
            EditText i5=(EditText) findViewById(R.id.state);
            state=i5.getText().toString();





            }
        }
    public void onClick(View v) {
        // what to do if it doesn't exist

        do{
            //  code
            Toast.makeText(ASRCustomerAppActivity.this, "Please Fill The Blank Spaces", Toast.LENGTH_LONG).show();

        }while((first.equalsIgnoreCase("") || last.equalsIgnoreCase("") || city.equalsIgnoreCase("") || state.equalsIgnoreCase("")));


            values.put("firstname",first);
            values.put("lastname",last);
            values.put("day",day);
            values.put("month",month);
            values.put("year",year);
            values.put("gender",g);
            values.put("city",city);
            values.put("state",state);

            db.insert("customer", null, values);

            Intent intent=new Intent();
            intent.setClass(this,mapActivity.class);
            startActivity(intent);
            finish();
        }



    }

Ответы [ 2 ]

1 голос
/ 13 марта 2012

вместо этого

while((first.equalsIgnoreCase("") || last.equalsIgnoreCase("") || city.equalsIgnoreCase("") || state.equalsIgnoreCase("")));

попробуйте это

while((first.length==0|| last.length==0 || city.length==0|| state.length==0));

и поместите это в свой onClick

 first=i2.getText().toString();
 last=i3.getText().toString();
city=i4.getText().toString();
state=i5.getText().toString();
1 голос
/ 13 марта 2012

Вы не можете получить значения внутри вашего метода onCreate, потому что представление не отображается, пока окно не получит фокус.

Вы должны сделать это внутри метода onClick, чтобы он работал так же, как и переход к методу buttonClick:

city=i4.getText().toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...