2016-12-31 1 views
-1

私は2つの異なるクラスを持つAndroidのゲッターとセッターの使い方が違う?

public class TempInfo { 

    private int user_ID; 

    public int getID() { 
    return user_ID; 
    } 

    public void setID(int id) { 
    this.user_ID = id; 
    } 
} 

Javaでgetterメソッドとsetterメソッドを持っています。最初はsetterメソッドを呼び出し、そこからgetterメソッドを呼び出すと "user_ID"の値が表示されますが、2番目のクラスのgetterメソッドを呼び出すと0が表示されるため、パラメータを設定します。

ファーストクラス(私はここでセッターを使用しています)

String segment = response.substring(response.lastIndexOf(":") + 1); 
TempInfo i = new TempInfo(); 
i.setID(Integer.parseInt(segment)); 

「セグメント」はデータベースからのIDで正常に戻ります。
セカンドクラス(私はゲッターを使用したい)

TempInfo i = new TempInfo(); 
Toast.makeText(MainActivity.this, "" +i.getID(), Toast.LENGTH_LONG).show(); 

全体的には、私は、クラスで「user_IDは」に設定が保存し、別のクラスで表示します。私はデータベースのIDを破ったが、私はまた、JavaでIDが必要です。

+0

値を設定する場所と同じインスタンスを使用する必要があります。 – GurV

+0

あなたは 'user_ID'をデータベースに保存したいと言っていますか?前にSQLiteを使ったことがありますか? –

+0

私はIDをmysqlに格納し、私はPHPでIDを取得し、javaでsendrequestを取得します。 – M4ST3RX

答えて

1

TempInfoの2つのオブジェクトを作成しています。 TempInfo1とTempInfo2と呼ぶことができます。 最初のアクティビティでは、

TEmpInfo1.setID(Integer.parseInt(segment)); 

を行なったし、次の活動に、あなたはこのの

TEmpInfo2.getID(); 

一つの可能​​な解決策は、あなたがシングルトンを使用することができるということです呼んでいます。

public class TempInfo { 

private TempInfo() { 
} 

static TempInfo tempInfo; 
private static int user_ID; 

public static TempInfo getInstance() { 
    if (tempInfo == null) { 
     tempInfo = new TempInfo(); 
    } 
    return tempInfo; 
} 

public int getID() { 
    return user_ID; 
} 

public void setID(int id) { 
    this.user_ID = id; 
} 

}

そして、この変更後

TempInfo.getInstance().setId(Integer.parseInt(segment)); 
TempInfo.getInstance().getId(); 

を使用し、あなたのコードは動作するはずです。

+0

私はgetInstance()を使用しますか? – M4ST3RX

+0

@ M4ST3RX、私はそれを通過して私の答えを編集していた。 – Shubh

+0

私はそれを書いたが、Android StudioはgetInstanceで静的な静的使用が許可されていないと言っています – M4ST3RX

関連する問題