2016-04-13 12 views
0

基本的には、配列リストからリスト項目の名前を変更できるようにしようとしています。典型的なarrayList.set(index, "something")私はこのようなクラスを使用していて私の場合は多くのことを助けていません...配列内のリストアイテムの名前を変更するにはどうすればよいですか?

public class Song { 

private long id; 
private String title; 
private String artist; 

public Song(long songID, String songTitle, String songArtist) { 
    id=songID; 
    title=songTitle; 
    artist=songArtist; 
} 

public long getID(){return id;} 
public String getTitle(){return title;} 
public String getArtist(){return artist;} 

}

だから私はarrayList.setメソッドの2番目のパラメータを推測している必要がありこのクラスに関連付けられて、私はどのようにこれをやるのか分からない。たとえば、タイトルを変更する場合は、arrayList.set(index, Song(null, newTitle, null)のようなものを使用しますか?

class Song { 

    // ... 

    public void setTitle(String title){ 
     this.title = title; 
    } 

    public void setArtist(String artist){ 
     this.artist = artist; 
    } 
} 

をそして歌の名前を変更することを見つけるために、アレイのget(int index)メソッドを使用します。

答えて

2

あなたがオブジェクトにsetterを追加することができます。

arrayList.get(index).setTitle("new Title"); 

されたインデックスの配列中に既に存在している既存の曲の名前を変更しませんarrayList.set(index, Song(null, newTitle, null)を行います。これにより、新しいソングが作成され、指定されたインデックスの1つのストアが置き換えられます。あなたのidnullすることはできませんので

そしてところでnew Song(null, newTitle, null)はコンパイルされません。

+0

ありがとうございます!私はそれを働かせることができた。しかし、それは私がアプリケーションを再起動した後、それ自体をリセットするようだ... –

+0

これはどのような永続性を使用しているあなたのデータを保存しているかによって異なりますか? – Nirekin

+0

私は、曲の情報を取得する方法で自分の投稿を更新しました。 –

関連する問題