亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用數據庫值設置 TextView

使用數據庫值設置 TextView

ITMISS 2022-07-06 17:17:30
為具有給定字符串和數據庫中的某些值的文本視圖設置文本的最佳做法是什么?我的主要活動:MyModel model;TextView title = (TextView) findViewById(R.id.tvTitle);title.setText("Username: ", model.getName());我的模特private String name;public String getName() {    return name;}到目前為止我找不到解決方案。
查看完整描述

3 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

方法setText()有幾個簽名,但您需要的是:

public final void setText(CharSequence 文本)

所以你可以這樣做:

title.setText("Username: " + model.getName());

但是AS通常在這些情況下抱怨你應該避免在里面連接字符串setText()
所以你可以做的是:

String str = "Username: " + model.getName();
title.setText(str);

您還應該考慮將文字值存儲"Username: "在以下資源中:

<string name="username">Username:</string>

并像這樣使用它:

String str = getResources().getString(R.string.username) + model.getName();
title.setText(str);


查看完整回答
反對 回復 2022-07-06
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

創建 getter 和 setter 是一種很好的做法,您可以在為模型定義變量后在 Android Studio 中自動生成它們。除此之外,我不知道為什么在你getName()的方法中想要返回一個 long 而你實際上是在返回一個字符串。更改long為String


像這樣 :


  public String getName() {

        return mName;

    }


    public void setName(String name) {

        mName = name;

    }


查看完整回答
反對 回復 2022-07-06
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

其他人所說的關于在 setText 方法之外連接字符串的所有內容都是有效的。至于在 Activity 或 Fragment 中的位置(我在此示例中使用 Fragment),我使用以下約定:


在我的方法之外的類主體中聲明我的類字段(用于類范圍的訪問)


public class MyFragment extends Fragment {


    private TextView titleView;


    public MyFragment() {

    //Constructor

    }

    // and so on ...

}

然后,在 Fragment 膨脹后找到我的 TextView 引用,如果需要立即設置它的值


// ...

@override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)


    View view = inflater.inflate(R.layout.fragment_container, container, false);


    titleView = view.findViewById(R.id.title);

    String titleStr = "Username: " + model.getName();

    titleView.setText(titleStr);


    return view;

}

// ...

如果我期望有問題的數據庫值會發生變化(例如,用戶在設置中更新他們的用戶名),那么我可能還希望使用某些生命周期方法,這些方法會在 Fragment (或 Activity)在暫停后恢復時觸發,但是沒有完全重建。


// ...

@override

public void onResume() {


    titleStr = "Username: " + model.getName();

    titleView.setText(titleStr);


}

// ...

如果您不熟悉Android Activity 生命周期,這里有一個鏈接,這里是Fragments的一個很好的概要。希望這可以幫助。


查看完整回答
反對 回復 2022-07-06
  • 3 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號