使用Spinner从SQLIte DB获取数据并将其添加到LinearLayout中的textviews

时间:2013-04-28 02:30:18

标签: android textview spinner android-linearlayout

我正在寻找一个明确的答案,但这是我第一次使用Spinners,因为我对Android很新,所以按照其中一个教程编写下面的代码。请注意,它不是完整的类,因为它很长,但这应该足以让你们知道发生了什么。 所以基本上,我试图从SQLLite数据库中提取数据,然后将分隔的字符串数组中的字符串放入textviews,同时将它们添加到线性布局中。我想根据用户选择过滤数据。但是第一步,我只是试图在第一个选项中拉出所有数据,即在Spinner中选择“All”。现在,我注意到的一件事是,当我添加一个Toast(你可以在下面的代码中看到它评论)时,它确实在应用程序启动时显示Toast msg,从那时起,Spinner没有响应我的选择。我基本上有编辑方法,我编辑数据,然后尝试选择“全部”选项,看它是否拉新的更新数据,但它没有。另外,需要注意的重要一点是,我的LogCat干净无误!因此,我不知道发生了什么......任何帮助都将受到高度赞赏!谢谢!

MainActivity.java

public class MainActivity extends Activity implements OnItemSelectedListener{
    Spinner itemSpinner;
    ArrayAdapter<String> myArrayAdapter;


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


        // Get references to UI widgets
        final EditText myEditText = (EditText)findViewById(R.id.myEditText);
        final LinearLayout myLayout = (LinearLayout) findViewById(R.id.itemListLayout);
        String[] options = {"All", "Active", "Expired"};
        itemSpinner = (Spinner) findViewById(R.id.item_spinner);
        myArrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, options);

        itemSpinner.setAdapter(myArrayAdapter);
        itemSpinner.setOnItemSelectedListener(MainActivity.this);
    }

        @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub
        int position = itemSpinner.getSelectedItemPosition();
        LinearLayout anotherLayout = (LinearLayout) findViewById(R.id.itemListLayout);
        switch(position)
            {
                case 0:
                     //Display all existing tasks on launch
                    ToDoListDB info = new ToDoListDB(MainActivity.this);
                    info.open();
                    String data = info.getData();
                    info.close();

                    //Split the List item string into individual strings
                    String delim = "[\\n]+";
                    String[] items = data.split(delim);

                    List<TextView> itemsList = new ArrayList<TextView>(items.length);

                    for(int i = 0; i < items.length; i++)
                        {
                            TextView anItem = new TextView(MainActivity.this);
                            anItem.setText(items[i]);
                            anItem.setTextColor(getResources().getColor(R.color.text_color));
                            anItem.setBackgroundResource(R.drawable.textviewback);
                            anItem.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
                                                    LayoutParams.WRAP_CONTENT));

                            itemsList.add(anItem);
                            anotherLayout.addView(itemsList.get(i));
                        }

                    break;
                case 1:
                    break;
                case 2:
                    break;  
            }
    }

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

    }
    }

XML文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="10" >

    <EditText
        android:id="@+id/myEditText"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:background="#DDD"
        android:hint="Enter a list item"
        android:textColor="#D00" />

    <Spinner
        android:id="@+id/item_spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         android:layout_margin="15dp"/>

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="8" >

        <LinearLayout
            android:id="@+id/itemListLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="#000">

        </LinearLayout>
    </ScrollView>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">
        <Button
            android:id="@+id/bEditItem"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:background="@drawable/buttonback"
            android:text="Edit Task"
            android:textStyle="bold"
            android:layout_weight="1" />
        <Button
            android:id="@+id/bExit"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:background="@drawable/buttonbackred"
            android:text="Exit"
            android:textStyle="bold"
            android:layout_weight="1" />
    </LinearLayout>


</LinearLayout>

0 个答案:

没有答案