0

私のアプリには、テキストと変数が添付されたボタンがあります。たとえば、「inbox 20」の場合、20 は変数です。

毎分別のスレッドで同期を行い、受信トレイ メッセージの新しい値を取得します。

新しい値を取得するたびに、私はそうします

b.setText("Inbox" + numMails); //where numMails is an int retrieved from the server.

私の質問は、「受信トレイ」の部分を静的に保ち、そこに永久に残し、 numMails を追加する方法はありますか?

4

2 に答える 2

1

のテキストは部分的に更新できないためButton、できません。

ただし、一部を書き換えないという理由だけでこれを達成したいと思います"Inbox " +

したがって、次のようなメソッドを抽出することでこれを実現できます。

private void setInboxButtonText(int numMails) {
   StringBuilder sb = new StringBuilder();
   sb.append("Inbox ");
   sb.append(String.valueOf(numMails));
   b.setText(sb.toString());
}

Buttonのテキストを更新するたびに、このメソッドを使用します。

さらに、より抽象的な構造を探している場合は、次android.widget.Buttonのようにクラスを拡張することをお勧めします。

public class InboxButton extends Button {
   @Override
   public void setText(int numMails) {
       StringBuilder sb = new StringBuilder();
       sb.append("Inbox ");
       sb.append(String.valueOf(numMails));
       super.setText(sb.toString());
   }
}

Inbox Buttonを定義するときにこのクラスを使用します。

于 2013-10-18T22:24:35.617 に答える
0

次の方法で実行できます。

b.setText(b.getText().split(" ")[0] + " " + numMails);
于 2013-10-18T19:44:04.147 に答える