首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android sqlite微调器不显示SimplCursorAdapter

android sqlite微调器不显示SimplCursorAdapter
EN

Stack Overflow用户
提问于 2015-01-16 20:28:10
回答 1查看 107关注 0票数 0

这是我关于Stackoverflow的第一个问题。让我们来看看,如果我的问题问对了:

我有一个SQLite DB (lights_db)和两个微调器(spinnerLightType和spinnerLightSelector)。根据spinnerLightType中的选择(“人机接口”、“钨”、“荧光灯”或“发光二极管”),我希望通过查询中的选择将light_db的不同项加载到spinnerLightSelector中。查询很好,游标有数据,但问题是它没有在微调控件中显示数据,我不知道为什么。

以下是MainActivity代码的一部分:

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {

double Transmission = 1.0;
double Z = 1.0;

Light_SQL light_db = new Light_SQL(this);

Spinner spinnerLightType, spinnerLightSelector;

public Context mContext;

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

    // add lights to light_db
    createLightDB();
    mContext = this;
    spinnerLightType = (Spinner) findViewById(R.id.spinnerLightType);
    spinnerLightType.setSelection(1);
    spinnerLightType.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
            System.out.println("Technology set to : " + parent.getItemAtPosition(pos).toString());
             Cursor light_cc = light_db.getWritableDatabase().query("lights", // a. table
                    new String[]{"id AS _id", "technology", "name"}, // b. column names
                   "technology=?", // c. selections
                   new String[]{parent.getItemAtPosition(pos).toString()}, // d. selections args
                   null, // e. group by
                   null, // f. having
                   null, // g. order by
                   null); // h. limit
            if (light_cc.moveToFirst()) {
                do {
                    System.out.println("Item : " + light_cc.getString(0) + "Technology : " + light_cc.getString(1) + " name : " + light_cc.getString(2));
                } while (light_cc.moveToNext());
            }
            String[] from = new String[] {"name"};
            int[] to = new int[] {android.R.id.text1};
            SimpleCursorAdapter light_sca = new SimpleCursorAdapter(mContext, android.R.layout.simple_spinner_item, light_cc, from, to);
            light_sca.setDropDownViewResource(android.R.layout.simple_spinner_item);
            spinnerLightSelector.setAdapter(light_sca);
            light_cc.close();
        }
        public void onNothingSelected(AdapterView<?> parent) {}
    });

    spinnerLightSelector = (Spinner) findViewById(R.id.spinnerLightSelector);
    spinnerLightSelector.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
            Z = light_db.getLight((int) id).getZ();
            System.out.println("Z set to : " + Z);
        }
        public void onNothingSelected(AdapterView<?> parent) {}
    });


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.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);
}
}

public void createLightDB() {
    // HMI
    // ARRI PocketPar
    light_db.addLight(new Light("HMI","ARRI PocketPar 150", 150, 3.67));
    light_db.addLight(new Light("HMI","ARRI PocketPar 200", 200, 2.49));
    light_db.addLight(new Light("HMI","ARRI PocketPar 400", 400, 1.94));
    // K5600 Joker-Series
    light_db.addLight(new Light("HMI","K5600 Joker 200", 200, 2.44));
    light_db.addLight(new Light("HMI","K5600 Joker 400", 400, 2.44));
    light_db.addLight(new Light("HMI","K5600 Joker 800", 800, 1.45));
    light_db.addLight(new Light("HMI","K5600 Joker 1600", 1600, 0.67));
    // K5600 Alpha-Series
    light_db.addLight(new Light("HMI","K5600 Alpha 4k", 200, 0.45));
    light_db.addLight(new Light("HMI","K5600 Alpha 18k", 400, 0.28));
    // Arri D-Series
    light_db.addLight(new Light("HMI","ARRI D5", 575, 1.78));
    light_db.addLight(new Light("HMI","ARRI D12", 1200, 1.14));
    light_db.addLight(new Light("HMI","ARRI D25", 2500, 0.87));
    light_db.addLight(new Light("HMI","ARRI D40", 4000, 0.69));
    // ArriSun series
    light_db.addLight(new Light("HMI","ARRISUN 25", 2500, 0.87));
    light_db.addLight(new Light("HMI","ARRISUN 40", 4000, 0.69));
    // Arri Compact
    light_db.addLight(new Light("HMI","ARRI Compact 6000", 6000, 0.54));
    // Arri M-Series
    light_db.addLight(new Light("HMI","ARRI M8", 800, 1.49));
    light_db.addLight(new Light("HMI","ARRI M18", 1800, 0.96));
    light_db.addLight(new Light("HMI","ARRI M25", 2500, 0.96));
    light_db.addLight(new Light("HMI","ARRI M40", 4000, 0.60));
    light_db.addLight(new Light("HMI","ARRI M90", 9000, 0.34));
    // Arri Daylight-Series
    light_db.addLight(new Light("HMI","ARRI Daylight 12", 12000, 0.42));
    light_db.addLight(new Light("HMI","ARRI Daylight 18", 18000, 0.36));
    light_db.addLight(new Light("HMI","ARRIMAX 18", 18000, 0.27));

    // Tungstene
    // Fresnels
    light_db.addLight(new Light("Tungsten","150 W Fresnel", 150, 6.76));
    light_db.addLight(new Light("Tungsten","300 W Fresnel", 300, 4.78));
    light_db.addLight(new Light("Tungsten","650 W Fresnel", 650, 2.68));
    light_db.addLight(new Light("Tungsten","1 kW Fresnel", 1000, 2.04));
    light_db.addLight(new Light("Tungsten","2 kW Fresnel", 2000, 1.60));
    light_db.addLight(new Light("Tungsten","5 kW Fresnel", 50000, 0.83));
    light_db.addLight(new Light("Tungsten","10 kW Fresnel", 10000, 0.62));
    light_db.addLight(new Light("Tungsten","12 W Fresnel", 12000, 0.56));
    light_db.addLight(new Light("Tungsten","20 kW Fresnel", 20000, 0.46));
    light_db.addLight(new Light("Tungsten","24 W Fresnel", 240000, 0.42));
    // Open Face
    light_db.addLight(new Light("Tungsten","800 W Open Face", 2000, 2.36));
    light_db.addLight(new Light("Tungsten","2 kW Open Face", 2000, 1.99));

    // Fluorescent
    // KinoFlo
    light_db.addLight(new Light("Fluorescent","KinoFlo 4ft 4Bank", 300, 5.21));
    light_db.addLight(new Light("Fluorescent","KinoFlo 4ft 2Bank", 150, 7.17));
    light_db.addLight(new Light("Fluorescent","KinoFlo 2ft 4Bank", 160, 0.78));
    light_db.addLight(new Light("Fluorescent","KinoFlo 2ft 2Bank", 80, 12.42));
    light_db.addLight(new Light("Fluorescent","KinoFlo 4ft 1Bank", 75, 9.56));
    light_db.addLight(new Light("Fluorescent","KinoFlo 2ft 1Bank", 40, 17.56));

    // LED
    // LitePanel
    light_db.addLight(new Light("LED","LitePanel 30x30", 40, 4.57));
}
}

这里是logcat (这证明了光标肯定有数据,我在spinnerLightType中选择了“发光二极管”,然后选择了“荧光”):

代码语言:javascript
复制
01-16 13:17:42.144  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 43 Technology : LED name : LitePanel 30x30
01-16 13:17:47.409  31987-31987/com.example.georges.benilux I/System.out﹕ Technology set to : Fluorescent
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 37 Technology : Fluorescent name : KinoFlo 4ft 4Bank
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 38 Technology : Fluorescent name : KinoFlo 4ft 2Bank
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 39 Technology : Fluorescent name : KinoFlo 2ft 4Bank
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 40 Technology : Fluorescent name : KinoFlo 2ft 2Bank
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 41 Technology : Fluorescent name : KinoFlo 4ft 1Bank
01-16 13:17:47.413  31987-31987/com.example.georges.benilux I/System.out﹕ Item : 42 Technology : Fluorescent name : KinoFlo 2ft 1Bank

那么,为什么游标中的数据没有显示在LightTypeSelector中呢?其他问题:为什么Android Studio告诉我"SimpleCursorAdapter“是被贬低的……

EN

回答 1

Stack Overflow用户

发布于 2015-01-16 20:33:28

Android Studio可能会告诉您,您正在为SimpleCursorAdapter使用的构造函数已被弃用:

代码语言:javascript
复制
public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)

此构造函数在API级别1中添加,但在API级别11中已弃用。

查看安卓文档:http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27983983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档