在一个java文件中链接两个XML布局

时间:2012-12-11 15:58:49

标签: android xml

我正在创建一个手电筒应用程序...我想在一个java文件中链接两个布局...一个布局是当手电筒熄灭时...另一个布局显示一个有启发性的手电筒......我工作过在它上面,现在当我按下按钮它转移到另一个布局..(照亮的那个)......但是当我点击按钮时它不会回到第一个......怎么办? 这是代码..

我的XML1:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/fl"
tools:context=".Flash" >

<Button
    android:id="@+id/ib2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/bu" />

我的XML2:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fl1"
android:orientation="vertical" >

<Button
    android:id="@id/ib2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/bu" />

我的Flashlight.java文件(不包括导入):

    package com.potapptoes.flashlight;
    public class Flash extends Activity implements OnClickListener {
Camera cam = null;
Button ib1;
Parameters para;
PowerManager pm;
WakeLock wl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "whatever");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    wl.acquire();
    initialize();
    ib1.setOnClickListener(this);
}

private void initialize() {
    // TODO Auto-generated method stub
    ib1 = (Button) findViewById(R.id.ib2);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if (cam == null) {
        setContentView(R.layout.main2);
        cam = Camera.open();
        para = cam.getParameters();
        para.setFlashMode(Parameters.FLASH_MODE_TORCH);
        cam.setParameters(para);
    } else {
                    setContentView(R.layout.main);
        para.setFlashMode(Parameters.FLASH_MODE_OFF);
        cam.setParameters(para);
        cam.release();
        cam = null;
    }
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    para.setFlashMode(Parameters.FLASH_MODE_OFF);
    cam.setParameters(para);
    cam.release();
    cam = null;
    wl.release();
    finish();
}
    }

3 个答案:

答案 0 :(得分:2)

查看ViewSwitcher

Here就是一个例子。

答案 1 :(得分:0)

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if (cam == null) {
        setContentView(R.layout.main2);
        cam = Camera.open();
        para = cam.getParameters();
        para.setFlashMode(Parameters.FLASH_MODE_TORCH);
        cam.setParameters(para);
    } else {
        setContentView(R.layout.main); // you forgot this line
        para.setFlashMode(Parameters.FLASH_MODE_OFF);
        cam.setParameters(para);
        cam.release();
        cam = null;
    }
}

答案 2 :(得分:0)

为什么不在按钮上更改背景图像?

  1. 为您的按钮创建 onClickListener
  2. 创建一个布尔变量,可以在点击按钮时触发和关闭手电筒。
  3. 检查后更改背景是手电筒已经&#34;触发&#34;或不。
  4. 希望我理解你的问题是正确的,你会觉得这很有帮助。