-1

スピナー値を文字列に SQLite データベースに保存する方法は知っていますが、http を介したデータベースの場合は方法が異なります。コードに何が欠けているのか知りたいのですが、書いた行が正しいかどうかもわかりません。どんな助けでも大歓迎です、ありがとう。

アクティビティはこちら

public class RegisterUser extends Activity implements OnClickListener, AsyncTaskComplete, OnItemSelectedListener{

    private User user = null;
    private Spinner mGender;

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

        Intent i = getIntent();
        user = (User)i.getSerializableExtra("User");

        if (user != null) {
            ((EditText)findViewById(R.id.eemail)).setText(user.getEmail());
            ((EditText)findViewById(R.id.repass)).setText(user.getPassword());
            ((EditText)findViewById(R.id.efname)).setText(user.getFirstname());
            ((EditText)findViewById(R.id.elname)).setText(user.getLastname());
            ((EditText)findViewById(R.id.edob)).setText(user.getDob());
            //((Spinner)findViewById(R.id.spinner1).setText(user.getGender());

            mGender = (Spinner)findViewById(R.id.spinner1);
            // Spinner method to read the on selected value
            ArrayAdapter<State> spinnerArrayAdapter = new ArrayAdapter<State>(this,
                android.R.layout.simple_spinner_item, new State[] { 
                    new State("Male"), 
                    new State("Female")
                }
            );
            mGender.setAdapter(spinnerArrayAdapter);
            mGender.setOnItemSelectedListener(this);
        }

        // set onclick listeners
        findViewById(R.id.buttonNext).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        final int id = v.getId();
        switch (id) {
            case R.id.buttonNext:
            PostUser();
            break;
        }
    }

    @SuppressWarnings("unchecked")
    private void PostUser() {
        // Initialize HttpGet
        CloudDBPost httppost = new CloudDBPost(this, this);

        ArrayList<NameValuePair> lst = new ArrayList<NameValuePair>();

        // add url part
        lst.add(new BasicNameValuePair("url", "http://www.stepsaway.vrgnetwork.com/users/add"));


        lst.add(new BasicNameValuePair("email", ((EditText)findViewById(R.id.eemail)).getText().toString().trim()));
        lst.add(new BasicNameValuePair("pass", ((EditText)findViewById(R.id.repass)).getText().toString().trim()));
        lst.add(new BasicNameValuePair("firstname", ((EditText)findViewById(R.id.efname)).getText().toString().trim()));
        lst.add(new BasicNameValuePair("lastname", ((EditText)findViewById(R.id.elname)).getText().toString().trim()));
        lst.add(new BasicNameValuePair("dob", ((EditText)findViewById(R.id.edob)).getText().toString().trim()));
        lst.add(new BasicNameValuePair("gender", mGender.getSelectedItem().toString().trim()));


        // add file part
        //lst.add(new BasicNameValuePair("file", "/storage/sdcard/Pictures/icon1.png"));

        httppost.execute(lst);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onAsyncTaskComplete (String result) {   
        Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
        Log.d("SaveUser", result);

        if (result.trim().toString().equals("OK")) {
            // start view contacts activity
            Intent contacts = new Intent(getApplicationContext(), GameActivity.class);
            contacts.putExtra("userid", user.getUserid());
            startActivity(contacts);
        } else {
            AlertDialog.Builder adb = new AlertDialog.Builder(RegisterUser.this);
            adb.setTitle("Save User");
            adb.setMessage("Unable to save User successfully");
            adb.setPositiveButton("Ok", null);
            adb.show();   
        }
    }

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        // Get the currently selected State object from the spinner
        State st = (State)mGender.getSelectedItem();

        // Show it via a toast
        toastState( "onItemSelected", st );
    } 

    public void toastState(String name, State st) {
        if ( st != null ) {
            //gender = st.name;
            //Toast.makeText(getBaseContext(), Gen, Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
}

これらは文字列です:

public class User implements Serializable {
    private String userid;
    private String email;
    private String pass;
    private String fname;
    private String lname;
    private String dob;
    private String gender;
    private String locationid;
    private String latitude;
    private String longitude;
    static final long serialVersionUID = 99L;

    public User() {
        // TODO Auto-generated constructor stub
        userid = "0";
        locationid = "0";
        latitude = "0";
        longitude = "0";
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getPassword() {
        return pass;
    }

    public void setPassword(String pass) {
        this.pass = pass;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getFirstname() {
        return fname;
    }

    public void setFirstname(String fname) {
        this.fname = fname;
    }

    public String getLastname() {
        return lname;
    }

    public void setLastname(String lname) {
        this.lname = lname;
    }

    public String getDob() {
        return dob;
    }

    public void setDob(String dob) {
        this.dob = dob;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getLocationid() {
        return locationid;
    }

    public void setLocationid(String locationid) {
        this.locationid = locationid;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }
}
4

1 に答える 1

0

スピナーが現在設定されているインデックスを保存するだけです。getSelectedItemPosition()で現在のインデックスを取得できます ビューを再構築し、スピナーを適切な値に復元したい場合は、その保存されたインデックスをsetSelection()に渡します。

于 2013-10-23T02:40:07.267 に答える