无法为FragmentActivity解析setContentView

时间:2017-01-04 21:35:38

标签: java android android-fragments

我有一个错误说明:

  

setContentView(int)无法解析

以下课程:

public class MainActivity extends FragmentActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);   <--- ERROR
  }
}

FragmentActivity扩展了Activity,为什么会发生这个错误,我该如何避免呢?

这是我的 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.chris.bluetooth.me.bluetooth.MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/aircraft"
        android:layout_centerHorizontal="true"/>
    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/communication"
        android:divider="@android:color/transparent"
        android:layout_alignParentTop="true">

    </ListView>

    <EditText
        android:id="@+id/communication"
        android:layout_above="@+id/connexion"
        android:singleLine="true"
        android:layout_toLeftOf="@+id/send"
        android:layout_marginBottom="2dp"
        android:textColor="@android:color/white"
        android:dividerHeight="0dip"
        android:layout_marginTop="2dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <ImageButton
        android:id="@+id/send"
        android:layout_above="@+id/connexion"
        android:layout_alignTop="@+id/communication"
        android:layout_alignParentRight="true"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:src="@drawable/aircraft"/>

    <LinearLayout
        android:id="@+id/connexion"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/connect"
        android:padding="2dp">

        <ToggleButton
            android:id="@+id/client"
            android:layout_weight="1"
            android:enabled="true"
            android:textColor="@android:color/white"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textOff="Client"
            android:textOn="Client"/>

        <ToggleButton
            android:id="@+id/serveur"
            android:layout_weight="1"
            android:enabled="true"
            android:textColor="@android:color/white"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textOff="Serveur"
            android:textOn="Serveur"/>
    </LinearLayout>

    <Button
        android:id="@+id/connect"
        android:layout_weight="1"
        android:layout_margin="2dp"
        android:enabled="false"
        android:textColor="@android:color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/disconnect"
        android:text="Connect"/>

    <Button
        android:id="@+id/disconnect"
        android:layout_margin="2dp"
        android:enabled="false"
        android:textColor="@android:color/white"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Disconnect"/>
</RelativeLayout>

唯一的编译时错误似乎是我指出的错误。

2 个答案:

答案 0 :(得分:0)

您对activity_main.xml的操作不需要 FragmentActivity

尝试扩展到AppCompatActivity

public class MyActivity extends AppCompatActivity { }

如果你真的需要FragmentActivity,这里有一个完整的例子。

Implementing multiple fragments in a single activity Dynamically

答案 1 :(得分:0)

事实证明&#34;重新启动并使缓存无效&#34;解决了这个问题。不知道为什么会这样,但错误消失了。我想通了这个,因为我试图通过构建项目来找到堆栈跟踪,并且gradle没有抛出任何错误。