菜鸟问个小问题

时间:2020-12-24 17:35:44
买了本《第一行代码》,正在按照书上的一点点实习代码。
用的是android studio 3.0.1版本,有个问题求教下。。
建立了一个project
activity_main.xml的代码如下
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.activitylifecycletest.MainActivity"
    >

    <Button
        android:id="@+id/btn_normal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="btnNormal" />

    <Button
        android:id="@+id/btn_dialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="btnDialog"/>

</android.support.constraint.ConstraintLayout>


问题1:为什么书上看到建立这2个button是上下紧挨着排列的,而我的2个button重叠了?

然后,MainActivity代码如下:
public class MainActivity extends AppCompatActivity {

    public static final String tag = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(tag,"OnCreate");
        setContentView(R.layout.activity_main);
        Button btnNormal = (Button) findViewById(R.id.btn_normal);
    }
}

问题2:为什么我的 (Button) findViewById(R.id.btn_normal)在R.id.后面自动带不出来?我手动添加进去的显示是btn_normal红色?也就是未找到这个button。我之前还有个test的project,一样的写法啊,但是那个Project就能好好的带出来。

球解答。。。谢谢

3 个解决方案

#1


问题一:因为这是约束布局,仔细看好根布局的类型。不添加约束就是全部堆在左上角,宽度一致,自然就重叠了。
问题二:应该是R文件没有导入,所以导致红色,导入R文件后显示会正常。推荐设置自动导包。
菜鸟问个小问题
按图设置,自动导包。就没有这种红字情况了。

#2


1.android.support.constraint.ConstraintLayout是谷歌的新布局控件,你改成LinearLayout就是上下排列的了。
2.只要id正确,直接运行就行,可能没有R文件没有更新,可以build下就可以点出来了。

#3


感谢2位。。

#1


问题一:因为这是约束布局,仔细看好根布局的类型。不添加约束就是全部堆在左上角,宽度一致,自然就重叠了。
问题二:应该是R文件没有导入,所以导致红色,导入R文件后显示会正常。推荐设置自动导包。
菜鸟问个小问题
按图设置,自动导包。就没有这种红字情况了。

#2


1.android.support.constraint.ConstraintLayout是谷歌的新布局控件,你改成LinearLayout就是上下排列的了。
2.只要id正确,直接运行就行,可能没有R文件没有更新,可以build下就可以点出来了。

#3


感谢2位。。