Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将特定行的所有列从数据库获取到另一个布局?_Java_Android_Sqlite_Android Layout_Listview - Fatal编程技术网

Java 如何将特定行的所有列从数据库获取到另一个布局?

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

我正在从事一个android项目,我想获取一行的所有列(特定条件),并将它们拆分为文本视图

我有一个包含以下项目的列表视图:

当我单击listview中的一个项目时,它将导航到另一个布局,并将listview项目作为字符串传递:

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
中,使用object
details
执行日志或土司。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