Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 如何在微调器中显示字符串项并将其作为整数值存储在数据库中_Android_Xml_Sqlite_Android Spinner - Fatal编程技术网

Android 如何在微调器中显示字符串项并将其作为整数值存储在数据库中

Android 如何在微调器中显示字符串项并将其作为整数值存储在数据库中,android,xml,sqlite,android-spinner,Android,Xml,Sqlite,Android Spinner,在我的android项目中,我使用了四个微调器。单击按钮,我将在数据库中保存选定的微调器项。这里微调器项将在数据库中保存为字符串。现在,我需要的是,我必须在数据库中保存微调器项的指定数值。 例如,如果我在第一个微调器中选择Mr,它必须在数据库中另存为1。 若我选择Ms,它必须在数据库中另存为2。 如果我在国家中选择印度,它必须在数据库中保存为91。。 谁能告诉我如何实现这一目标。。 如有任何帮助,我们将不胜感激。。提前谢谢 main活动 package com.example.server;

在我的android项目中,我使用了四个微调器。单击按钮,我将在数据库中保存选定的微调器项。这里微调器项将在数据库中保存为字符串。现在,我需要的是,我必须在数据库中保存微调器项的指定数值。 例如,如果我在第一个微调器中选择Mr,它必须在数据库中另存为1。 若我选择Ms,它必须在数据库中另存为2。 如果我在国家中选择印度,它必须在数据库中保存为91。。 谁能告诉我如何实现这一目标。。 如有任何帮助,我们将不胜感激。。提前谢谢

main活动

package com.example.server;


import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings({ "deprecation", "unused" })
public class MainActivity extends Activity {

    private Spinner spin;
    private Spinner spin1;
    private Spinner spin2;
    private Spinner spin3;
    private EditText editTextFname;
    private EditText editTextLname;
    private EditText editTextMobile;
    private EditText editTextPin;
    //private EditText editTextPin;

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

        spin = (Spinner)findViewById(R.id.spinner1);
        spin1 = (Spinner)findViewById(R.id.spinner2);
        spin2 = (Spinner)findViewById(R.id.spinner3);
        spin3 = (Spinner)findViewById(R.id.spinner4);
        editTextFname = (EditText) findViewById(R.id.editTextFname);
        editTextLname = (EditText) findViewById(R.id.editTextLname);
        editTextMobile = (EditText) findViewById(R.id.editTextMobile);
        editTextPin = (EditText) findViewById(R.id.editTextPin);

        ArrayAdapter<CharSequence> spinner = ArrayAdapter.createFromResource(this, R.array.salutation_arrays, android.R.layout.simple_spinner_item);
        spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(spinner);

        ArrayAdapter<CharSequence> spinner1 = ArrayAdapter.createFromResource(this, R.array.country_arrays, android.R.layout.simple_spinner_item);
        spinner1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin1.setAdapter(spinner1);

        ArrayAdapter<CharSequence> spinner2 = ArrayAdapter.createFromResource(this, R.array.state_arrays, android.R.layout.simple_spinner_item);
        spinner2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin2.setAdapter(spinner2);

        ArrayAdapter<CharSequence> spinner3 = ArrayAdapter.createFromResource(this, R.array.city_arrays, android.R.layout.simple_spinner_item);
        spinner3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin3.setAdapter(spinner3);

    }

    public void Register(View view){

        String salutation = spin.getSelectedItem().toString();
        String fname = editTextFname.getText().toString();
        String lname = editTextLname.getText().toString();
        String mobile = editTextMobile.getText().toString();
        String country = spin1.getSelectedItem().toString();
        String state = spin2.getSelectedItem().toString();
        String city = spin3.getSelectedItem().toString();
        String pin = editTextPin.getText().toString();


        insertToDatabase(salutation,fname,lname,mobile,country,state,city,pin);


        /*Uri uri = Uri.parse("http://oursite/insert-db.php"); // opens google site if insert button is pressed.
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);*/
    }

    private void insertToDatabase(String salutation, String fname, String lname,String mobile, String country, String state, String city, String pin){
        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @SuppressWarnings({ "unused", "deprecation" })
            @Override
            protected String doInBackground(String... params) {
                @SuppressWarnings("unused")
                String paramSalutation = params[0];
                String paramFname = params[1];
                String paramLname = params[2];
                String paramMobile = params[3];
                String paramCountry = params[4];
                String paramState = params[5];
                String paramCity = params[6];
                String paramPin = params[7];

                //InputStream is = null;

                String salutation = spin.getSelectedItem().toString();
                String fname = editTextFname.getText().toString();
                String lname = editTextLname.getText().toString();
                String mobile = editTextMobile.getText().toString();
                String country = spin1.getSelectedItem().toString();
                String state = spin2.getSelectedItem().toString();
                String city = spin3.getSelectedItem().toString();
                String pin = editTextPin.getText().toString();

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("salutation", salutation));
                nameValuePairs.add(new BasicNameValuePair("fname", fname));
                nameValuePairs.add(new BasicNameValuePair("lname", lname));
                nameValuePairs.add(new BasicNameValuePair("mobile", mobile));
                nameValuePairs.add(new BasicNameValuePair("country", country));
                nameValuePairs.add(new BasicNameValuePair("state", state));
                nameValuePairs.add(new BasicNameValuePair("city", city));
                nameValuePairs.add(new BasicNameValuePair("pin", pin));


                try {
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost(
                            "http://oursite/insert1-db.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpClient.execute(httpPost);

                    HttpEntity entity = response.getEntity();

                    //is = entity.getContent();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "success";
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);

                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
                TextView textViewResult = (TextView) findViewById(R.id.textViewResult);
                textViewResult.setText("Inserted");
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(salutation,fname,lname,mobile,country,state,city,pin);
    }

    @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 boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
定义两个数组:
私有静态最终int[]区域代码=新int[]{90110120};//用于保存区号的数组
私有静态最终字符串[]区域=新字符串[]{“区域90”、“区域110”、“区域120”};//显示位置的数组
//使用适配器在微调器中显示值
ArrayAdapter adpt_area=新的ArrayAdapter(此,
android.R.layout.simple_微调器_下拉列表_项目,区域);
spn_区域。设置适配器(adpt_区域);
//获取所选项目位置
int selectedPosition=spn_area.getSelectedItemPosition();
//根据微调器中选择的值获取区号
String areaCodeByPosition=String.valueOf(AreaCode[selectedPosition]);
//检查日志值
Log.d(“%%%”,所选区域:“+selectedPosition+”***相对代码:“+areaCodeByPosition”);

@Dhaval..这里我不想要这个位置..但我必须为特定的微调器设置并保存特定的编号..例如。对于印度,它必须保存91。您可以创建两个数组,一个用于“显示值”,另一个用于“保存值”。基于位置,这将为您提供“要显示的值”数组元素位置,您可以使用该索引值从“要保存的值”数组中获得相同的值。您可以解释如何实现该值吗?或者如何在我的代码中修改吗?但是我如何将区号值发送到Register方法并保存在那里呢?bcz我正在Register方法中保存微调器项。让我们来看看。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Server</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

    <string name="salutation_prompt">Salutation</string>
     <string-array name="salutation_arrays">

        <item>Mr</item>
        <item>Ms</item>

    </string-array>

    <string name="country_prompt">Choose a country</string>
    <string-array name="country_arrays">


         <item>India</item><!--here i need to save 91 if india is selected.-->
          <item>Srilanka</item><!--here i need to save 94 if srilanka is selected.-->
        <item>Malaysia</item><!--here i need to save 60 if malaysia is selected.-->
          <item>Australia</item>
        <item>USA</item>

    </string-array>

    <string name="state_prompt">Select a State</string>
     <string-array name="state_arrays">

        <item>Karnataka</item>

    </string-array>


    <string name="city_prompt">Select City</string>
     <string-array name="city_arrays">

        <item>Bangalore</item>

    </string-array>

</resources>
01-11 16:54:16.046: E/AndroidRuntime(27447): FATAL EXCEPTION: main
01-11 16:54:16.046: E/AndroidRuntime(27447): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.server/com.example.server.MainActivity}: java.lang.NullPointerException
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2114)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2139)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread.access$700(ActivityThread.java:143)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.os.Looper.loop(Looper.java:137)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread.main(ActivityThread.java:4960)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at java.lang.reflect.Method.invokeNative(Native Method)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at java.lang.reflect.Method.invoke(Method.java:511)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at dalvik.system.NativeStart.main(Native Method)
01-11 16:54:16.046: E/AndroidRuntime(27447): Caused by: java.lang.NullPointerException
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:214)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.content.res.Resources.getTextArray(Resources.java:1274)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.widget.ArrayAdapter.createFromResource(ArrayAdapter.java:431)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at com.example.server.MainActivity.onCreate(MainActivity.java:100)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.Activity.performCreate(Activity.java:5203)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-11 16:54:16.046: E/AndroidRuntime(27447):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2078)
01-11 16:54:16.046: E/AndroidRuntime(27447):    ... 11 more
Define two arrays:

private static final int[] AreaCode = new int[]{90, 110, 120}; // array to save area code
private static final String[] Area = new String[]{"Area 90","Area 110","Area 120"}; // array to show location

//Use adapter to show values in spinner
ArrayAdapter<String> adpt_area = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_dropdown_item, Area);
spn_area.setAdapter(adpt_area);

// get selected item position
int selectedPosition = spn_area.getSelectedItemPosition();
// get area code based on value selected in spinner
String areaCodeByPosition = String.valueOf(AreaCode[selectedPosition]);
// check log value
Log.d("%%%", "Area selected:  " + selectedPosition + " *** Relative code: "+areaCodeByPosition);