Java 如何将特定行的所有列从数据库获取到另一个布局?
我正在从事一个android项目,我想获取一行的所有列(特定条件),并将它们拆分为文本视图 我有一个包含以下项目的列表视图: 当我单击listview中的一个项目时,它将导航到另一个布局,并将listview项目作为字符串传递:Java 如何将特定行的所有列从数据库获取到另一个布局?,java,android,sqlite,android-layout,listview,Java,Android,Sqlite,Android Layout,Listview,我正在从事一个android项目,我想获取一行的所有列(特定条件),并将它们拆分为文本视图 我有一个包含以下项目的列表视图: 当我单击listview中的一个项目时,它将导航到另一个布局,并将listview项目作为字符串传递: public void Select() { final ListView listView = (ListView) findViewById(R.id.ListViewMovie); listView.setOnItemClickListener
public void Select()
{
final ListView listView = (ListView) findViewById(R.id.ListViewMovie);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
final String details = listView.getAdapter().getItem(position).toString();
Intent i = new Intent(getApplicationContext(), MovieDetailsActivity.class);
i.putExtra("key", details);
startActivity(i);
}
});
}
助手
还有一个电影模型:
public class Movie
{
// property to help us handle the data
private int id;
private String name;
private String genre;
private int year;
//Getters and Setters of the properties
public long getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getGenre()
{
return genre;
}
public void setGenre(String genre)
{
this.genre = genre;
}
public int getYear()
{
return year;
}
public void setYear(int year)
{
this.year = year;
}
public String toString()
{
return name;
}
//----------Start--------- Here we have defined the table contents (basically a blueprint of the table Movie) -------------------------------------
public static final String TABLE_NAME = "movie";
public static final String COlUMN_ID = "id";
public static final String COlUMN_NAME = "make";
public static final String COlUMN_GENRE = "model";
public static final String COlUMN_YEAR = "year";
//----------------------END----------------------------------------------------------------------------------------------------------------//
}
希望你们能帮我弄明白你们应该在适配器中保存数据列表(在你们的情况下是电影)。然后将对象的id传递给另一个活动,而不是标题,以便能够通过id从数据库中查询此对象。您可以将整个对象传递给
活动,并在那里检索它
呼叫活动:
final Movie details = listView.getAdapter().getItem(position);
Intent i = new Intent(getApplicationContext(), MovieDetailsActivity.class);
i.putExtra("key", details);
被称为活动(这里是MovieDetailsActivity
):
请注意,您必须使类Movie
可序列化
public class Movie implements Serializable
你是说活动而不是布局吗?也为MovieDetailsActivity类发布代码;这更有用。是的,对不起,这是活动我的意思是MovieDetailsActivity现在是空的,带有您在适配器中使用的类的名称。我看你们也有电影课。您在适配器中使用它吗?如果是,那么您可以将其保留为电影。使用我的模型class.name?它表示无法解析方法(String,Model.Movie)将准确的错误消息粘贴到此处。将类声明从公共类电影
更改为公共类电影实现可序列化
。请参阅更新。如何测试/查看电影项目是否通过?在MovieDetailsActivity
中,使用objectdetails
执行日志或土司。e、 g.Toast.makeText(这个,(字符串)details.getName(),Toast.LENGTH\u LONG.show()
或Log.d(“MovieDetailsActivity”,details.getName())代码>
Intent intent = getIntent();
Movie details = (Movie)(intent.getExtras().getSerializable("key"));
public class Movie implements Serializable