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。请看看并告诉我 –