在菜单栏中单击的正确位置在哪里

时间:2014-07-18 12:19:13

标签: java android onclicklistener

当我点击它时,我需要让注销按钮进入登录页面

好吧首先,我在屏幕顶部有一个操作栏(它在菜单文件夹中有一个不同的xml文件),此操作栏包含注销按钮。
对于整个屏幕的布局(而不是顶部的菜单)在布局文件夹中有一个名为fragment_create_incident的xml文件,它具有整个屏幕的布局

我不知道在create_incident.java中添加我的注销代码以使其工作,我已经尝试将其放在oncreate中,但是当我运行它时我的应用程序关闭了!

这是页面顶部菜单栏的相关代码

create_incident.java     

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    tools:context="com.example.studentproject.caservicedesk.CreateRequest" >



        <item

        android:id="@+id/logout"

        android:orderInCategory="2"

        android:title="@string/logout"

        android:showAsAction="never"/>


</menu>

这是我的注销按钮重定向代码,我想在java代码中添加

Button logout = (Button) findViewById(R.id.logout);

 logout.setOnClickListener(new View.OnClickListener() {

 public void onClick(View v) {

 // Switching to login screen

 Intent i = new Intent(getApplicationContext(), Login.class);

 startActivity(i);

 }

 });

这就是我要将注销按钮添加到其中的活动

public class CreateIncident extends Activity 
{
private final String TAG = "create_incident";

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.create_incident, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{

switch (item.getItemId())
{
case R.id.action_bar:
Log.i(TAG, "Action bar item clicked");
return true;
case R.id.home:
Log.i(TAG, "Home item clicked");
return true;
case R.id.logout:
Log.i(TAG, "Logout item clicked");
return true;

default: return super.onOptionsItemSelected(item);

}

}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_create_incident);



}



}


}

1 个答案:

答案 0 :(得分:0)

将它放在onOptionsItemSelected处理程序中:

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{

    switch (item.getItemId())
    {
        case R.id.action_bar:
            Log.i(TAG, "Action bar item clicked");
            return true;
        case R.id.home:
            Log.i(TAG, "Home item clicked");
            return true;
        case R.id.logout: {
            Log.i(TAG, "Logout item clicked");

            Intent i = new Intent(getApplicationContext(), Login.class);
            startActivity(i);

            return true;
        }

        default:
            return super.onOptionsItemSelected(item);
    }
}