在我的申请表中,我使用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);
}
}
答案 0 :(得分:0)
碎片不是数据库的替代品。片段用于显示内容,数据库用于持久保存数据,以便即使在关闭并再次打开所有数据后也可以访问相同的数据。
在这里,您需要使用两项活动。一个用于显示列表视图。另一个用于在您点击一个学校排后显示各个学校的详细信息。当您点击学校行时,将学校ID或姓名作为额外的意图传递,并开始第二项活动。第二个活动可以根据ID或名称从数据库中选择相应的学校详细信息,然后显示这些详细信息。
但是,为此,您需要在尝试显示内容之前以某种方式创建和填充数据库。如果您需要进一步澄清,请与我们联系。 :)
答案 1 :(得分:0)
所以在这里,我应该使用片段来定义信息。关于每所学校。
片段是UI部分或轻量级活动。是的,您应该使用片段来显示此类数据。您为打开新活动SchoolDesc.class
而编写的代码也可以使用。覆盖方法与Activity几乎相同。你应该检查官方指南here。
关于数据库的部分,当然你可以使用sqllite来存储信息和图像。但片段不用于存储或定义任何数据,仅用于从文件或数据库中获取数据并显示它们。