2016-05-08 8 views
0

私はアンドロイド・アプリケーションで作業しています。最初の画面は、リストアされている一連の名前を表示するだけのものです。私はセリについて知っている情報、私は知りたいです:リストビュー内の「名前」属性のみを表示する

  • 私はセリエの名前だけを最初の画面に印刷できますか?
  • 最初の画面で1つのセリフをクリックすると、セリエのすべての情報を表示します。

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

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

と詳細クラスであなたが持っているを実装するためにあなたがSerieを持っているすべてに関する情報を印刷する 'Arraylist ' –

答えて

0

toStringメソッドを変更する必要があります。これは、cricket_007が簡単な方法だと言ったからです。それだけであるので、あなたは `Series`のクラスは必要ありません

getIntent().getSerializableExtra("data"); 
+0

こんにちは、ありがとう!私はこれで初心者です、私は1つのクラス "Serializable"を作成し、それを実装する必要がありますか? – Cyanogen

+0

あなたのSerieクラスは、そのようなSerializableインターフェイスを暗示する必要があります –

+0

詳細クラスとは何ですか?これは本当にnoobish、うんざりするはずです:)ありがとう。 – Cyanogen

0

toStringメソッドを変更するだけです。

また、カスタムArrayAdapterとレイアウトを定義することもできます。

すべての情報を印刷するには、をクリックすると、ListViewにOnItemClickListenerが必要です。

関連する問題