我正在开发一个Android应用程序,其中第一个屏幕是一个listview,它只是为了显示插入到应用程序中的系列的名称,此刻它打印了我有关系列的所有信息,我想要要知道:
MainActivity:
package com.example.bugdroid.trabalhoapp1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.example.bugdroid.trabalhoapp1.modelo.Series;
import com.example.bugdroid.trabalhoapp1.modelo.Serie;
public class MainActivity extends AppCompatActivity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lista_series);
Series Series = new Series();
Serie exemplo = new Serie ("Thrones", "açao", 50, 10, 1900 );
Series.getLista().add(exemplo);
exemplo = new Serie("CSI", "Policial", 30, 20, 4);
Series.getLista().add(exemplo);
exemplo = new Serie("Flash", "aventura", 30, 20, 4);
Series.getLista().add(exemplo);
exemplo = new Serie("Vikings", "Historia", 3, 2, 4);
Series.getLista().add(exemplo);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, Series.getLista());
lv.setAdapter(adapter);
}
Serie.java
package com.example.bugdroid.trabalhoapp1.modelo;
/**
* Created by BugDroid on 06/05/2016.
*/
public class Serie {
private String nome;
private String descricao;
private int nEpisodios;
private int nTemporadas;
private int dataEstreia;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public int getnEpisodios() {
return nEpisodios;
}
public void setnEpisodios(int nEpisodios) {
this.nEpisodios = nEpisodios;
}
public int getnTemporadas() {
return nTemporadas;
}
public void setnTemporadas(int nTemporadas) {
this.nTemporadas = nTemporadas;
}
public int getDataEstreia() {
return dataEstreia;
}
public void setDataEstreia(int dataEstreia) {
this.dataEstreia = dataEstreia;
}
public Serie () {
this.nome = "";
this.descricao = "";
this.nEpisodios = 0;
this.nTemporadas = 0;
this.dataEstreia = 0;
}
public Serie(String nome, String c, int p, int h, int g){
this.nome = nome;
this.descricao = c;
this.nEpisodios = p;
this.nTemporadas = h;
this.dataEstreia = g;
}
public String toString() {
String res = "A serie" + this.nome + " tem a seguinte descricao " + this.descricao + "com" + this.nEpisodios + "episodios e " + this.nTemporadas + "estreou em" + this.dataEstreia +")";
return res;
}
}
Series.java
package com.example.bugdroid.trabalhoapp1.modelo;
import java.util.ArrayList;
/**
* Created by BugDroid on 07/05/2016.
*/
public class Series {
private ArrayList<Serie> lista;
public ArrayList<Serie> getLista(){
return this.lista;
}
public void setLista(ArrayList<Serie> l){
this.lista = l;
}
public Series(){
this.lista = new ArrayList<Serie>();
}
public Series(ArrayList<Serie> l){
this.lista = new ArrayList<Serie>(l);
}
}
答案 0 :(得分:0)
只需更改toString
方法即可。
public String toString() {
return this.nome;
}
或者,您可以为数据定义自定义ArrayAdapter和布局。
要打印所有信息,点击后,您需要在ListView上使用OnItemClickListener
。
答案 1 :(得分:0)
你必须改变toString方法,因为cricket_007告诉你这是一个简单的方法。
打印您Serie
实施Serializable
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,long itemID) {
Intent in = new Intent(getApplicationContext(),Detail.class);
in.putExtra("data", Series.getLista().get(itemID));
startActivity(in);
}
});
并在Detail类中
getIntent().getSerializableExtra("data");