从标题textview小部件设置文本

时间:2016-03-21 17:23:35

标签: android android-layout android-activity android-actionbaractivity

我尝试在从谷歌帐户获取的标题导航视图数据中实现。即姓名和电子邮件。

通过简单的setText接收erroare小部件。但是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

和&#34; Main2Activity&#34;是启动时启动的活动以及此处发生的所有活动。

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>

1 个答案:

答案 0 :(得分:4)

我希望你能提出activity_main2的源布局。但是,如果您使用RecyclerView并将“header”布局引用为headerLayout,则可能需要使用

访问View对象
    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的含义已从支持appcompat v7从ListView更改为RecyclerView:23.1