Android - 找不到合适的方法putExtra()

时间:2016-03-15 21:38:37

标签: android

我正在尝试为android编写一些简单的应用程序。我有Listview,由数据库(BACKENDLESS)的数据填充。我想这样做:当我点击一个列表项时,会打开新页面并显示正确的数据。

这是onListItemClick的代码:

    @Override
protected void onListItemClick( ListView l, View v, int position, long id )
{
    Intent showLocationsIntent = new Intent( this, Detail_page.class ); 
    showLocationsIntent.putExtra("restaurants", totalRestaurants.get( position ) );
    startActivity( showLocationsIntent );
}

这是新的活动类:

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ImageView;

public class  Detail_page extends ListActivity{
private Restaurants restaurant;

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

        restaurant = (Restaurants) getIntent().getSerializableExtra( "restaurants" );

        ImageView image = (ImageView)findViewById(R.id.imageView);

        new DownloadImage((ImageView) findViewById(R.id.imageView)).execute(restaurant.getPicture());

        String title = restaurant.getName();
    }
}

但我对此行showLocationsIntent.putExtra("restaurants", totalRestaurants.get( position ) );

有疑问

错误是:没有为putExtra(String,Restaurant)找到合适的方法

餐厅是我的班级

3 个答案:

答案 0 :(得分:0)

餐厅实现Serializable(或Parcelable)

答案 1 :(得分:0)

因为你传递了一个对象。您的Restaurants类应该实现Parcelable接口。 Read this

答案 2 :(得分:0)

对我来说,解决方案是添加: implements Serializable 传递给意图的对象类。

使用您的代码,看来您是错误地使用了意图。