片段或数据库..什么是最好的?

时间:2016-04-01 18:20:36

标签: android database listview android-fragments

在我的申请表中,我使用listview列出了10个学校名称。通过选择学校名称,相应的信息应显示在屏幕上,信息如图像,有关该学校的描述,联系号等等。

我应该使用片段来定义每所学校的信息。如果是,那么我应该使用哪个片段以及要覆盖哪个方法?

将此信息存储在数据库中是否可以解决此问题?

我可以获得一些与此相关的例子吗?

 package com.example.mayurijoshi.puneclassified1;

import android.app.ListActivity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import android.view.View;
import android.widget.AdapterView;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;


public class school extends ListActivity {

    //Defining android ListView
    ListView mListView;

    //Elements that will be displayed in android ListView
    String[] schools = new String[]{"School 1", "School 2", "School 3",
            "School 4", "School 5", "School 6", "School 7", "School 8", "School 9", School 10};


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

        mListView=(ListView) findViewById(R.id.listschool);

        //Declaring Array adapter
        ArrayAdapter<String> schoolAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, schools);

        //Setting the android ListView's adapter to the newly created adapter
        mListView.setAdapter(schoolAdapter);

        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                int itemPosition = position;


                String itemValue = (String) mListView.getItemAtPosition(position);


                Intent intent = new Intent(getApplicationContext(),SchoolDesc.class);


                Here we will pass the previously created intent as parameter
                startActivity(intent);

            }
        });

        }


    @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_school, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();


        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

2 个答案:

答案 0 :(得分:0)

碎片不是数据库的替代品。片段用于显示内容,数据库用于持久保存数据,以便即使在关闭并再次打开所有数据后也可以访问相同的数据。

在这里,您需要使用两项活动。一个用于显示列表视图。另一个用于在您点击一个学校排后显示各个学校的详细信息。当您点击学校行时,将学校ID或姓名作为额外的意图传递,并开始第二项活动。第二个活动可以根据ID或名称从数据库中选择相应的学校详细信息,然后显示这些详细信息。

但是,为此,您需要在尝试显示内容之前以某种方式创建和填充数据库。如果您需要进一步澄清,请与我们联系。 :)

答案 1 :(得分:0)

  

所以在这里,我应该使用片段来定义信息。关于每所学校。

片段是UI部分或轻量级活动。是的,您应该使用片段来显示此类数据。您为打开新活动SchoolDesc.class而编写的代码也可以使用。覆盖方法与Activity几乎相同。你应该检查官方指南here

关于数据库的部分,当然你可以使用sqllite来存储信息和图像。但片段不用于存储或定义任何数据,仅用于从文件或数据库中获取数据并显示它们。