Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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
Android 使用解析数据库填充自定义Listview_Android_Listview_Parse Platform - Fatal编程技术网

Android 使用解析数据库填充自定义Listview

Android 使用解析数据库填充自定义Listview,android,listview,parse-platform,Android,Listview,Parse Platform,我正在开发一个Android应用程序,它的Listview中填充了一个Parse中的数据库 我可以将我的列表视图与parse连接起来,在这一边一切都正常。问题是我想在Listview的行中显示一个图像和三个文本,但应用程序只显示图像和一个文本。我无法显示图像150x100dp,只显示了一个小图像 我不知道如何显示行中的所有数据 这是我的密码 主要活动 公共类MainActivity扩展了活动{ private ParseQueryAdapter<ParseObject> mainAd

我正在开发一个Android应用程序,它的Listview中填充了一个Parse中的数据库

我可以将我的列表视图与parse连接起来,在这一边一切都正常。问题是我想在Listview的行中显示一个图像和三个文本,但应用程序只显示图像和一个文本。我无法显示图像150x100dp,只显示了一个小图像

我不知道如何显示行中的所有数据

这是我的密码

主要活动

公共类MainActivity扩展了活动{

private ParseQueryAdapter<ParseObject> mainAdapter;
private CustomAdapter urgentTodosAdapter;
private ListView listView;


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


    // Initialize main ParseQueryAdapter
    mainAdapter = new ParseQueryAdapter<ParseObject>(this, "Musica");
    mainAdapter.setTextKey("titulo");
    mainAdapter.setTextKey("artista");
    mainAdapter.setTextKey("album");
    mainAdapter.setImageKey("imagen");

    // Initialize the subclass of ParseQueryAdapter
    urgentTodosAdapter = new CustomAdapter(this);

    // Initialize ListView and set initial view to mainAdapter
    listView = (ListView) findViewById(R.id.list);
    listView.setAdapter(mainAdapter);
    mainAdapter.loadObjects();


}
专用ParseQueryAdapter主适配器;
专用自定义适配器urgenttodapter;
私有列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listado_musica;
//初始化主ParseQueryAdapter
mainAdapter=新的ParseQueryAdapter(这是“Musica”);
main adapter.setTextKey(“titulo”);
main adapter.setTextKey(“artista”);
mainAdapter.setTextKey(“相册”);
maintadapter.setImageKey(“imagen”);
//初始化ParseQueryAdapter的子类
urgentTodosAdapter=新的CustomAdapter(此);
//初始化ListView并将初始视图设置为mainAdapter
listView=(listView)findViewById(R.id.list);
setAdapter(mainAdapter);
mainAdapter.loadObjects();
}
}

custom_list.xml

<com.parse.ParseImageView
    android:id="@+id/imagen"
    android:layout_width="150dp"
    android:layout_height="100dp"
    android:background="@drawable/no_picture"
    android:layout_alignParentLeft="true"

    />

<TextView
    android:id="@+id/titulo"
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:textColor="#FF0000"
    android:text="titulo"
    android:textIsSelectable="true"
    android:clickable="true"
    android:layout_alignTop="@+id/imagen"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/artista"
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:text="artista"
    android:layout_alignBottom="@+id/imagen"
    android:layout_alignLeft="@+id/titulo"
    android:layout_alignStart="@+id/titulo" />

<TextView
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:text="album"
    android:id="@+id/album"
    android:layout_alignBottom="@+id/imagen"
    android:layout_toRightOf="@+id/artista"
    android:layout_toEndOf="@+id/artista"
    android:layout_marginLeft="29dp"
    android:layout_marginStart="29dp" />
<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true" />


CustomAdapter.java

公共类CustomAdapter扩展了ParseQueryAdapter{

public CustomAdapter(Context context) {
    // Use the QueryFactory to construct a PQA that will only show
    // Todos marked as high-pri
    super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("Musica");
            //query.whereEqualTo("high pry", "true");
            return query;
        }
    });
}

// Customize the layout by overriding getItemView
@Override
public View getItemView(ParseObject object, View v, ViewGroup parent) {
    if (v == null) {
        v = View.inflate(getContext(), R.layout.custom_list, null);
    }

    super.getItemView(object, v, parent);

    // Add and download the image
    ParseImageView todoImage = (ParseImageView) v.findViewById(R.id.imagen);
    ParseFile imageFile = object.getParseFile("imagen");
    if (imageFile != null) {
        todoImage.setParseFile(imageFile);
        todoImage.loadInBackground();
    }

    // Add the title view
    TextView titleTextView1 = (TextView) v.findViewById(R.id.titulo);
    titleTextView1.setText(object.getString("titulo"));

    // Add a reminder of how long this item has been outstanding
    TextView titleTextView2 = (TextView) v.findViewById(R.id.localidad);
    titleTextView2.setText(object.getString("artista"));

    TextView titleTextView3 = (TextView) v.findViewById(R.id.consola);
    titleTextView3.setText(object.getString("album"));


    return v;
}
publiccustomadapter(上下文){
//使用QueryFactory构建仅显示
//标记为高优先级的待办事项
super(上下文,新的ParseQueryAdapter.QueryFactory(){
公共ParseQuery创建(){
ParseQuery=新的ParseQuery(“Musica”);
//查询:whereEqualTo(“高撬”、“真实”);
返回查询;
}
});
}
//通过覆盖getItemView自定义布局
@凌驾
公共视图getItemView(ParseObject对象、视图v、视图组父对象){
如果(v==null){
v=View.inflate(getContext(),R.layout.custom_list,null);
}
super.getItemView(对象,v,父对象);
//添加并下载图像
ParseImageView todoImage=(ParseImageView)v.findViewById(R.id.imagen);
ParseFile imageFile=object.getParseFile(“imagen”);
if(imageFile!=null){
todoImage.setParseFile(imageFile);
todoImage.loadInBackground();
}
//添加标题视图
TextView titleTextView1=(TextView)v.findViewById(R.id.titulo);
titleTextView1.setText(object.getString(“titulo”);
//添加此项目未完成时间的提醒
TextView titleTextView2=(TextView)v.findViewById(R.id.localidad);
titleTextView2.setText(object.getString(“artista”);
TextView titleTextView3=(TextView)v.findViewById(R.id.consola);
titleTextView3.setText(object.getString(“相册”);
返回v;
}
}

activity_listado_musica.xml

<com.parse.ParseImageView
    android:id="@+id/imagen"
    android:layout_width="150dp"
    android:layout_height="100dp"
    android:background="@drawable/no_picture"
    android:layout_alignParentLeft="true"

    />

<TextView
    android:id="@+id/titulo"
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:textColor="#FF0000"
    android:text="titulo"
    android:textIsSelectable="true"
    android:clickable="true"
    android:layout_alignTop="@+id/imagen"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/artista"
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:text="artista"
    android:layout_alignBottom="@+id/imagen"
    android:layout_alignLeft="@+id/titulo"
    android:layout_alignStart="@+id/titulo" />

<TextView
    android:layout_width="80dp"
    android:layout_height="21dp"
    android:text="album"
    android:id="@+id/album"
    android:layout_alignBottom="@+id/imagen"
    android:layout_toRightOf="@+id/artista"
    android:layout_toEndOf="@+id/artista"
    android:layout_marginLeft="29dp"
    android:layout_marginStart="29dp" />
<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true" />


有人能帮我吗?我想我在适配器上做错了什么,但我不知道是什么

xml文件中缺少部分代码,因为编辑器没有显示。我不知道为什么。对不起

提前谢谢
关于,

这部分代码是您要进行解析的唯一调用。在这种情况下,
ParseQueryAdapter
只为自己的适配器调用一个
setTextKey
和一个
setImageKey

mainAdapter = new ParseQueryAdapter<ParseObject>(this, "Musica");
mainAdapter.setTextKey("titulo");
mainAdapter.setTextKey("artista");
mainAdapter.setTextKey("album");
mainAdapter.setImageKey("imagen");
mainAdapter=newparsequeryadapter(这是“Musica”);
main adapter.setTextKey(“titulo”);
main adapter.setTextKey(“artista”);
mainAdapter.setTextKey(“相册”);
maintadapter.setImageKey(“imagen”);

因此,因为您使用的是自定义列表项,所以您可以删除此部分,并让
getItemView
@Override
执行繁重的操作。

检查此示例应用程序谢谢,我会检查,我在使用同一个程序的另一个示例,