1

我嘗試在標頭導航視圖中實現從Google帳戶獲取的數據。即姓名和電子郵件。從標題文本視圖窗口部件設置文本

通過簡單的setText接收錯誤小部件。但通過RemoteViews不會更改文本。可以解決嗎?我做錯事情了 ?

碼活動:

public class Main2Activity extends AppCompatActivity implements VideosFragment.Contract { 

    private Toolbar toolbar; 
    //Defining Variables 
    private NavigationView navigationView; 
    private DrawerLayout drawerLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.header); 
     remoteViews.setTextViewText(R.id.username, "email here"); 

header.xml:

<?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="190dp" 
    android:background="@drawable/background_material" 
    android:orientation="vertical" 
    > 

    <de.hdodenhof.circleimageview.CircleImageView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/profile_image" 
    android:layout_width="76dp" 
    android:layout_height="76dp" 
    android:src="@drawable/profile" 
    app:border_color="#FF000000" 
    android:layout_marginLeft="24dp" 
    android:layout_centerVertical="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginStart="24dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="GrupoVRT" 
     android:textSize="14sp" 
     android:textColor="#FFF" 
     android:textStyle="bold" 
     android:gravity="left" 
     android:paddingBottom="4dp" 
     android:id="@+id/username" 
     android:layout_above="@+id/email" 
     android:layout_alignLeft="@+id/profile_image" 
     android:layout_alignStart="@+id/profile_image" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="VRT Player (m3u8)" 
     android:id="@+id/email" 
     android:gravity="left" 
     android:layout_marginBottom="8dp" 
     android:textSize="14sp" 
     android:textColor="#fff" 
     android:layout_alignParentBottom="true" 
     android:layout_alignLeft="@+id/username" 
     android:layout_alignStart="@+id/username" /> 

</RelativeLayout> 

enter image description here

和 「Main2Activity」 是其在啓動時,所有的活動會在這裏啓動活動。

activity_main2

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".Main2Activity" 
    android:background="@drawable/back"> 
    <LinearLayout 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     android:orientation="vertical"> 
     <include 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      layout="@layout/toolbar" 
      android:id="@+id/include" /> 


     <FrameLayout 
      android:id="@+id/frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.design.widget.FloatingActionButton 
       android:id="@+id/bShare" 
       android:layout_width="91dp" 
       android:layout_height="wrap_content" 
       android:src="@android:drawable/ic_menu_share" 
       android:layout_gravity="bottom|right" 
       android:layout_marginRight="16dp" 
       android:layout_marginBottom="16dp" /> 
     </FrameLayout> 

    </LinearLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/header" 
     app:menu="@menu/drawer" /> 

</android.support.v4.widget.DrawerLayout> 
+0

你可以張貼R.layout.activity_main2的內容編輯好澄清 – ribads

+0

,並添加更多的數據 –

回答

3

我希望你能忍受的activity_main2源佈局。但無論如何,如果你正在使用RecyclerView你引用的「頭」的佈局作爲headerLayout,你可能想使用

NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); 
    View headerView = navigationView.getHeaderView(0); 
    TextView mUsernameView = (TextView) headerView.findViewById(R.id.username); 
    mUsernameView.setText("username text"); 

現在你可以操縱使用「headerView」引用的標題視圖對象訪問視圖對象。這主要是因爲NavigationView寓意從ListView控件改爲RecyclerView從支持程序兼容性V7:23.1

+0

後編輯和添加activity_main2。請看看並告訴我 –