仅打印列表视图中的“名称”属性

时间:2016-05-08 15:28:20

标签: java android listview android-studio

我正在开发一个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);
    }
}

2 个答案:

答案 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");