在辅助屏幕上引用后退按钮时Android应用程序挂起

时间:2012-03-16 03:12:10

标签: android

我有一个小应用程序,当按钮按下导航时从主屏幕移动到下一个屏幕时,这可以正常工作,但当我在下一页上添加一个按钮(返回)时,它会中断。

Fun.java

package com.forcetechnology.OptusApp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Fun extends Activity {
OnClickListener backListener;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fun);

    Button backButtonf = (Button)findViewById(com.forcetechnology.OptusApp.R.id.backtoMainf);
    backListener = new OnClickListener()
    {           
        public void onClick(View v) 
        {        
         Intent i = new Intent();
         i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.OptusAppMain");
                startActivity(i);           
        }
    };
    backButtonf.setOnClickListener(backListener);

   }

}

Fun.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" >




<ImageButton
    android:id="@+id/backtoMainf"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/val5" />

</LinearLayout>

main.xml中     

<ImageButton
    android:id="@+id/funbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/val5"
    android:src="@drawable/val5" />



<ImageButton
    android:id="@+id/executionbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/funbutton"
    android:layout_alignParentRight="true"
    android:background="@drawable/val2"
    android:src="@drawable/val2" />



<ImageButton
    android:id="@+id/performancebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/executionbutton"
    android:layout_toLeftOf="@+id/funbutton"
    android:background="@drawable/val3"
    android:src="@drawable/val4" />



<ImageButton
    android:id="@+id/innovationbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/executionbutton"
    android:layout_alignParentLeft="true"
    android:background="@drawable/val3"
    android:src="@drawable/val3" />



<ImageButton
    android:id="@+id/peoplebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/innovationbutton"
    android:layout_toLeftOf="@+id/executionbutton"
    android:background="@drawable/val1"
    android:src="@drawable/val1" />

</RelativeLayout>

OPtusAppMain.java

    package com.forcetechnology.OptusApp;

import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class OptusAppMain extends Activity 
{
    OnClickListener funListener,executionListener,innovationListener,peopleListener,performanceListener;;
    TextView testView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.forcetechnology.OptusApp.R.layout.main);
        ImageButton funButton = (ImageButton)findViewById(com.forcetechnology.OptusApp.R.id.funbutton);
        ImageButton executionButton = (ImageButton)findViewById(com.forcetechnology.OptusApp.R.id.executionbutton);
        ImageButton innovationButton = (ImageButton)findViewById(com.forcetechnology.OptusApp.R.id.innovationbutton);
        ImageButton peopleButton = (ImageButton)findViewById(com.forcetechnology.OptusApp.R.id.peoplebutton);
        ImageButton performanceButton = (ImageButton)findViewById(com.forcetechnology.OptusApp.R.id.performancebutton);


        funListener = new OnClickListener()
        {           
            public void onClick(View v) 
            {        
                 Intent i = new Intent();
                    i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.Fun");
                    startActivity(i);           
            }
        };
        executionListener = new OnClickListener()
        {           
            public void onClick(View v) 
            {        
                 Intent i = new Intent();
                 i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.Execution");
                    startActivity(i);          
            }
        };
        innovationListener = new OnClickListener()
        {           
            public void onClick(View v) 
            {        
                 Intent i = new Intent();
                 i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.Innovation");
                    startActivity(i);           
            }
        };
        peopleListener = new OnClickListener()
        {           
            public void onClick(View v) 
            {        
                 Intent i = new Intent();
                 i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.People");
                    startActivity(i);           
            }
        };
        performanceListener = new OnClickListener()
        {           
            public void onClick(View v) 
            {        
                 Intent i = new Intent();
                 i.setClassName("com.forcetechnology.OptusApp", "com.forcetechnology.OptusApp.Performance");
                    startActivity(i);         
            }
        };
        funButton.setOnClickListener(funListener);
        executionButton.setOnClickListener(executionListener);
        innovationButton.setOnClickListener(innovationListener);
        peopleButton.setOnClickListener(peopleListener);
        performanceButton.setOnClickListener(performanceListener);
    }




}

编辑:我已将错误追溯到此行按钮backButtonf =(Button)findViewById(com.forcetechnology.OptusApp.R.id.backtoMainf);在fun.java中。

2 个答案:

答案 0 :(得分:1)

onClick()的{​​{1}}中,只需致电backListener即可返回上一个活动。

答案 1 :(得分:0)

让我们举个例子:你有两个活动“A”&amp; “B”,你从“A”开始你的“B”活动,这意味着你的“A”活动在堆栈中,所以不需要再次启动它,只需用“finish()”方法完成你的“B”活动。

public class A extends Activity{

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

public void onAbuttonClick()

{

startActivity(new Intent(A.this,B.class)); }

}

}

公共类B扩展了Activity             {     public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     的setContentView(R.layout.second);

}

public onBbuttonclick(View v)
{

结束(); }

 }

}