例如我這里是手機號作為賬號,所以顯示的就是手機號
效果:
首先是xml布局頁面 activity_personal__page.xml
(我只放了部分的代碼,用於實現該功能,其中TextView是用來顯示用戶名的)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/person"> <LinearLayout android:id="@+id/ziliao" android:layout_width="match_parent" android:layout_height="300dp" android:orientation="vertical" android:background="#f5efd9" android:gravity="center"> <ImageView android:id="@+id/img_tx" android:layout_width="70dp" android:layout_height="70dp" android:src="@drawable/touxiang" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/edit_user" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="騎手001" android:layout_marginTop="15dp" android:textSize="20sp" android:textStyle="bold" /> </LinearLayout> </RelativeLayout>
對應的activity,java文件
package com.example.express_delivery; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View;import android.widget.ImageView; import android.widget.TextView; import com.example.express_delivery.activity.SettingActivity; import com.example.express_delivery.login_register.PrefercesService; import com.example.express_delivery.order.Person_OrderActivity;import java.util.Map; public class Personal_PageActivity extends AppCompatActivity { private TextView edit_user; private PrefercesService prefercesService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_personal__page); if (getSupportActionBar() != null){ getSupportActionBar().hide(); } prefercesService = new PrefercesService(this); initView(); } private void initView() { edit_user = findViewById(R.id.edit_user); Map<String,String> params = prefercesService.getPreferences(); edit_user.setText(params.get("name")); } }
PrefercesService.java
package com.example.express_delivery.login_register; import android.content.Context; import android.content.SharedPreferences; import java.util.HashMap; import java.util.Map; public class PrefercesService { private Context context; public PrefercesService(Context context) { super(); this.context = context; } /** * 保存參數 * @param name 姓名 */ public void save(String name) { //第一個參數 指定名稱 不需要寫后綴名 第二個參數文件的操作模式 SharedPreferences preferences=context.getSharedPreferences("itcast", Context.MODE_PRIVATE); //取到編輯器 SharedPreferences.Editor editor=preferences.edit(); editor.putString("name", name); //把數據提交給文件中 editor.commit(); } /** * 獲取各項配置參數 * @return */ public Map<String,String> getPreferences(){ SharedPreferences pre=context.getSharedPreferences("itcast", Context.MODE_PRIVATE); //如果得到的name沒有值則設置為空 pre.getString("name", ""); Map<String,String> params=new HashMap<String,String>(); params.put("name", pre.getString("name", "")); return params; } }
在登錄頁面LoginActivity.java
private PrefercesService prefercesService;
在onCreate函數中:prefercesService = new PrefercesService(this);
當用戶點擊登錄按鈕時,調用函數:
String name = et_login_phone.getText().toString().trim(); (這里的et_login_phone就是用戶輸入手機號的控件EditText)
prefercesService.save(name);