2015-06-29 2 views
1

Я разрабатываю приложение для Android с Listview, заполненным базой данных в Parse.popilling listview with parse in android

Я могу подключить свой просмотр списка с помощью синтаксиса и на этой стороне все работает. Проблема в том, что я хочу показать одно изображение и три текста в строке списка, но приложение показывает только изображение и один текст. Я не могу показать изображение 150x100dp, показывается только небольшое изображение.

Я не знаю, как показать все данные в строке.

Это мой код.

MainActivity

public class MainActivity extends Activity { 

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(); 


} 
} 

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" /> 

CustomAdapter.java

public class CustomAdapter extends 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; 
} 
} 

activity_listado_musica.xml

<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentTop="true" /> 

Кто-нибудь может мне помочь? Я думаю, что я делаю что-то неправильно в адаптере, но я не знаю, что.

Я проследил и прочитал руководство по синтаксическому анализу Android и учебное пособие по едокам, и я не могу найти, что не так в моем коде.

спасибо заранее, что касается

ответ

0

Попробуйте использовать this ссылку. это работало очень хорошо для меня.

Другим решением является изменение на CustomAdapter.java эту строку:

textView.setText(object.getString("String"); 

К

textView.setText((String) object.get("String"); 
+0

спасибо, я попробую, – Rec

+0

@Rec Он работал? –

+0

Я пытаюсь. Я знал этот учебник, но мой код работает только в том, что он не показывает, что я хочу. Следуя этому руководству, я должен переписать весь код, и я думаю, проблема в том, что легко решить, возможно, в CustomAdapter. Но я пытаюсь с этим учебником. – Rec