Java SQLite的Android Spinner表现得很怪异

Java SQLite的Android Spinner表现得很怪异,java,android,xml,sqlite,android-layout,Java,Android,Xml,Sqlite,Android Layout,我有三个纺纱机 1) 阵列微调器 2) XML微调器和 3) SQLite光标微调器 当我添加我的第三个微调器时,页面开始变得怪异。微调器1和2开始出现在微调器3区域中。光标的值显示在微调器3中。当我选择任何值时,TOAST工作正常,但该值未被选中 布局文件:spinner\u demo\u main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.an

我有三个纺纱机

1) 阵列微调器

2) XML微调器和

3) SQLite光标微调器

当我添加我的第三个微调器时,页面开始变得怪异。微调器1和2开始出现在微调器3区域中。光标的值显示在微调器3中。当我选择任何值时,
TOAST
工作正常,但该值未被选中

布局文件:spinner\u demo\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.training.sqlitelistviewdemo.SpinnerDemo">

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Select Country"
    android:textColor="#000000"
    android:textSize="20sp" />

<Spinner
    android:id="@+id/spCountries"
    style="@android:style/Widget.Holo.Light.Spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/country_arrays"
    android:prompt="@string/country_prompt"
    android:spinnerMode="dialog">

</Spinner>

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Select Business Type"
    android:textColor="#000000"
    android:textSize="20sp" />

<Spinner
    android:id="@+id/spBussinessType"
    style="@style/Base.Widget.AppCompat.Spinner.Underlined"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:prompt="@string/business_prompt">

</Spinner>


<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Select Shop Name"
    android:textColor="#000000"
    android:textSize="20sp" />

<Spinner
    android:id="@+id/sp_Shops"
    style="@android:style/Widget.Holo.Light.Spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:prompt="@string/select_shops"
    android:spinnerMode="dialog">
</Spinner>


<Button
    android:id="@+id/submit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_margin="10dp"
    android:text="Submit"
    android:textSize="15sp" />

我的Java文件:SpinnerDemo.Java

package com.training.sqlitelistviewdemo;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class SpinnerDemo extends AppCompatActivity implements View.OnClickListener {

    // uicontrols
    Spinner spCountries;
    Spinner spBusinessType;
    Button btnsubmit;

    //class members
    String businessType[] = { "Automobile", "Food", "Computers", "Education", "Personal", "Travel" };
    ArrayAdapter<String> adapterBusinessType;

    // local members
    String sbusinesstype,scountry;

    // SQLite Parameters Start

    private DatabaseManager dbManager;
    private TextView tv_Text;
    private Spinner sp;

    private SimpleCursorAdapter adapter;

    // final String[] from = new String[] { DatabaseHelper._ID, DatabaseHelper.SHOPNAME, DatabaseHelper.SHOPADDRESS };
    final String[] from = new String[] {DatabaseHelper.SHOPNAME};

    //final int[] to = new int[] { R.id.id, R.id.shopname, R.id.shopaddress };
    final int[] to = new int[] {android.R.id.text1};

    // SQLite Parameters End


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_demo_main);
        //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        //setSupportActionBar(toolbar);

        spCountries = (Spinner) findViewById(R.id.spCountries);
        spBusinessType = (Spinner) findViewById(R.id.spBussinessType);

        btnsubmit=(Button)findViewById(R.id.submit);
        btnsubmit.setOnClickListener(this);

        // Initialize and set Adapter
        adapterBusinessType = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, businessType);
        adapterBusinessType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spBusinessType.setAdapter(adapterBusinessType);

        // Country Item Selected Listener
        spCountries.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapter, View v, int position, long id) {
                // On selecting a spinner item
                scountry = adapter.getItemAtPosition(position).toString();

                // Showing selected spinner item
                Toast.makeText(getApplicationContext(),
                        "Selected Country : " + scountry, Toast.LENGTH_LONG).show();
            }

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

            }
        });
        // Business Type Item Selected Listener
        spBusinessType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapter, View v,
                                       int position, long id) {
                // On selecting a spinner item
                sbusinesstype = adapter.getItemAtPosition(position).toString();

                // Showing selected spinner item
                Toast.makeText(getApplicationContext(),
                        "Bussiness Type : " + sbusinesstype, Toast.LENGTH_LONG).show();
            }

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

            }
        });
// SQLite Spinner Code Starts

        dbManager = new DatabaseManager(this);
        dbManager.open();
        Cursor cursor = dbManager.fetch_Shop();
        sp = (Spinner) findViewById(R.id.sp_Shops);
        // sp.setEmptyView(findViewById(R.id.empty));

        adapter = new SimpleCursorAdapter(this, R.layout.spinner_demo_main, cursor, from, to, 0);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp.setAdapter(adapter);
        //sp.setSelection(1);
        //adapter.notifyDataSetChanged();

        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
                sp.setSelection(position);

                Cursor shopCur=(Cursor)sp.getSelectedItem();
                String shopNamecol=shopCur.getString(shopCur.getColumnIndex(DatabaseHelper.SHOPNAME));
                String Rowid = shopCur.getString(shopCur.getColumnIndex(DatabaseHelper._ID));
                Toast.makeText(getApplicationContext(), "You Selected - " + shopNamecol + " - " + Rowid + " " + position, Toast.LENGTH_LONG).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });



// SQLite Spinner Code Ends
    }

    @Override
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(), "You have selected " + scountry + " and " + sbusinesstype,Toast.LENGTH_LONG).show();
    }

}
package com.training.sqlitelistviewdemo;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.support.v4.widget.SimpleCursorAdapter;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.view;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
公共类SpinnerDemo扩展AppCompatActivity实现View.OnClickListener{
//uicontrol s
纺纱机国家;
纺纱机;
按钮BTN提交;
//班级成员
字符串业务类型[]={“汽车”、“食品”、“计算机”、“教育”、“个人”、“旅行”};
阵列适配器业务类型;
//当地成员
字符串sbusinesstype,Scontry;
//SQLite参数启动
专用数据库管理器;
私人文本查看电视文本;
私人纺纱机;
专用SimpleCursorAdapter适配器;
//最终字符串[]from=新字符串[]{DatabaseHelper.\u ID,DatabaseHelper.SHOPNAME,DatabaseHelper.SHOPADDRESS};
最终字符串[]from=新字符串[]{DatabaseHelper.SHOPNAME};
//final int[]to=new int[]{R.id.id,R.id.shopname,R.id.shopaddress};
final int[]to=new int[]{android.R.id.text1};
//SQLite参数结束
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner\u demo\u main);
//Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
//设置支持操作栏(工具栏);
spCountries=(微调器)findViewById(R.id.spCountries);
spBusinessType=(微调器)findViewById(R.id.spBusinessType);
btnsubmit=(按钮)findviewbyd(R.id.submit);
btnsubmit.setOnClickListener(此);
//初始化并设置适配器
adapterBusinessType=new ArrayAdapter(这是android.R.layout.simple\u spinner\u项目,businessType);
adapterBusinessType.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
setAdapter(adapterBusinessType);
//选定的国家/地区项目侦听器
spCountries.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(适配器视图适配器、视图v、内部位置、长id){
//关于选择微调器项
scontry=adapter.getItemAtPosition(position.toString();
//显示所选微调器项
Toast.makeText(getApplicationContext(),
选定国家:“+Scontry,Toast.LENGTH_LONG).show();
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
//所选业务类型项目侦听器
spBusinessType.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(适配器视图适配器,视图v,
内部位置,长id){
//关于选择微调器项
sbusinesstype=adapter.getItemAtPosition(位置).toString();
//显示所选微调器项
Toast.makeText(getApplicationContext(),
“业务类型:”+sbusinesstype,Toast.LENGTH\u LONG.show();
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
//SQLite微调器代码启动
dbManager=新数据库管理器(此);
dbManager.open();
Cursor=dbManager.fetch_Shop();
sp=(微调器)findViewById(R.id.sp_);
//sp.setEmptyView(findViewById(R.id.empty));
adapter=new SimpleCursorAdapter(this,R.layout.spinner\u demo\u main,cursor,from,to,0);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
sp.setAdapter(适配器);
//sp.1选举(1);
//adapter.notifyDataSetChanged();
sp.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(适配器视图适配器视图视图视图视图内部位置长l){
警司选举(职位);
Cursor shopCur=(Cursor)sp.getSelectedItem();
字符串shopNamecol=shopCur.getString(shopCur.getColumnIndex(DatabaseHelper.SHOPNAME));
String Rowid=shopCur.getString(shopCur.getColumnIndex(DatabaseHelper._ID));
Toast.makeText(getApplicationContext(),“您选择了-”+shopNamecol+“-”+Rowid+”+位置,Toast.LENGTH_LONG.show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
//SQLite微调器代码结束
}
@凌驾
公共void onClick(视图v){
Toast.makeText(getApplicationContext(),“您已选择”+Scontry+“和”+sbusinesstype,Toast.LENGTH\u LONG.show();
}
}


非常感谢您的帮助。

要解决此问题,请在java文件和
Spinner spCountries;
Spinner spBusinessType;
Spinner shops;

//class members
String businessType[] = { "Automobile", "Food", "Computers", "Education", "Personal", "Travel" };
ArrayAdapter<String> adapterBusinessType;
ArrayAdapter<String> adapterspCountriesType;
ArrayAdapter<String> adaptershopsType;
adapter = new SimpleCursorAdapter(this, R.layout.spinner_demo_main, cursor, from, to, 0);
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor, from, to, 0);