layout和layout-land下建立同名main.xml,程序横竖屏时,则可以显示不同布局
我的问题是,两个main.xml中的布局是否可以不一致?
例如layout中的main.xml中无button,而layout-land中的main.xml有button。我尝试了这样的布局,并且在程序中为button设置了监听,但是程序报错为空指针错误。请问应该如果设置监听呢???layoutlayout-land布局
我的问题是,两个main.xml中的布局是否可以不一致?
例如layout中的main.xml中无button,而layout-land中的main.xml有button。我尝试了这样的布局,并且在程序中为button设置了监听,但是程序报错为空指针错误。请问应该如果设置监听呢???layoutlayout-land布局
解决方案 »
- 农用传感器与android
- android环境.so加载符号找不到的问题
- 各路神仙啊,Android怎么直接连接SQL Server?
- 才接触android几天时间 对于pendingintent和intent的区别之在哪 大侠们进来看看呀
- android程序 如何连接到FaceBook
- android中如何在代码中手动触发gridview的OnItemSelectedListener事件
- view中怎么显示提示消息?
- 怎么把两个ImageButton合并成一个
- android.os.NetworkOnMainThreadException异常
- HttpClient发生IOException的问题
- 微信开放平台,一点都不开放,有同感的进。有木有
- android SipDemo相关
因为你需要定义Button的onClick,所以xml里面是一定要定义的。不显示Button就隐藏起来。
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
/>然后在程序中正常使用就可以了? 是这样吗?
可是如果我两个xml中分别都有一个button,但是button的id不同,这样的情况下请问如何设置监听呢,因为在设置监听的时候就报错了
哦哦,我先试试可是,如果我两个button的作用是不同的呢???
哦哦,我先试试可是,如果我两个button的作用是不同的呢???
那就定义两个button啊,你可以选择隐藏任何一个或两个,或者都显示。
哦哦,我先试试可是,如果我两个button的作用是不同的呢???
那就定义两个button啊,你可以选择隐藏任何一个或两个,或者都显示。
这是两个都显示的时候:
layout-land/mani.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Hello ketty"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="我是横屏"/>
<Button
android:id="@+id/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
/>
</LinearLayout>layout/mani.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Hello"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="我是竖屏"/>
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>Activity代码
package com.example.hello;import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;public class MainActivity extends Activity {
Button but1;
Button but; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
but1 = (Button) findViewById(R.id.but1);
but = (Button) findViewById(R.id.but);
but.setOnClickListener(buton);
but1.setOnClickListener(buton1); } private Button.OnClickListener buton = new Button.OnClickListener() { @Override
public void onClick(View v) {
System.out.println("button"); }
};
private Button.OnClickListener buton1 = new Button.OnClickListener() { @Override
public void onClick(View v) {
System.out.println("button1"); }
};
}错误:
10-25 13:25:31.619: ERROR/AndroidRuntime(14958): Caused by: java.lang.NullPointerException
10-25 13:25:31.619: ERROR/AndroidRuntime(14958): at com.example.hello.MainActivity.onCreate(MainActivity.java:24)
10-25 13:25:31.619: ERROR/AndroidRuntime(14958): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-25 13:25:31.619: ERROR/AndroidRuntime(14958): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
10-25 13:25:31.619: ERROR/AndroidRuntime(14958): ... 11 more
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Hello ketty" /> <TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="我是横屏" /> <Button
android:id="@+id/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" //横屏的xml把这行去掉,竖屏保留
/> <Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" //竖屏的xml把这行去掉,横屏保留
/></LinearLayout>
也就是说,这两个button在横屏和竖屏都有定义,只是分别隐藏一个。这样就不会报空指针异常,也能在横屏和竖屏下实现不同的功能。