Java android导航抽屉没有';我不想被点击

Java android导航抽屉没有';我不想被点击,java,android,Java,Android,我有一个奇怪的错误,我的导航抽屉似乎没有意识到它正在被点击。我搜索了很多东西,但似乎找不到答案 package com.BlackSheepApps.Eventpost.activities; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration;

我有一个奇怪的错误,我的导航抽屉似乎没有意识到它正在被点击。我搜索了很多东西,但似乎找不到答案

 package com.BlackSheepApps.Eventpost.activities;

    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Intent;
    import android.content.res.Configuration;
    import android.content.res.Resources;
    import android.graphics.drawable.ColorDrawable;
    import android.os.Bundle;
    import android.support.v4.app.ActionBarDrawerToggle;
    import android.support.v4.widget.DrawerLayout;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ListView;

    import com.BlackSheepApps.Eventpost.R;
    import com.BlackSheepApps.Eventpost.adapters.AdapterNavigationDrawer;

public class ActivityBasic extends Activity{

    private ActionBar actionbar;
    private Resources resources;
    private String[] drawerStrings;
    private DrawerLayout drawerLayout;
    private ActionBarDrawerToggle drawerToggle;
    private ListView drawerList;

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        setContentView(R.layout.drawer_layout);


        //sets the customized action bar
        actionbar = getActionBar();
        resources = getResources();
        actionbar.setBackgroundDrawable(new ColorDrawable(resources.getColor(R.color.opaque_blue)));

        //make the drawer
        drawerStrings = resources.getStringArray(R.array.drawer_categories);
        drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
        drawerList = (ListView)findViewById(R.id.left_drawer);

        drawerList.setAdapter(new AdapterNavigationDrawer(this, -1, drawerStrings));
        drawerList.setOnItemClickListener(new DrawerItemClickListener());

        drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer, R.string.app_name, R.string.app_name) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        };

        // Set the drawer toggle as the DrawerListener
        drawerLayout.setDrawerListener(drawerToggle);

        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        registerViews();

    }

    /**
     * This method is used for registering the views in the layout, BUT First you'll have to start using a self created method : registerLayout(int layout_id) to register the right layout in the right 
     * place.
     * 
     */
    protected void registerViews(){

    }

    protected void ActionBarItemRemover(){

    }

    protected void registerLayout(int layout_id){
        LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
        View childView = inflater.inflate(layout_id, (ViewGroup)findViewById(layout_id));
        drawerLayout.addView(childView);
    }

    private class DrawerItemClickListener implements ListView.OnItemClickListener {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Log.d("Eventpost", "clicked");
            selectItem(arg2);

        }

    }

    private void selectItem(int position){
        switch(position){
        case 0:
            startActivity(new Intent(this, ActivityHomeScreen.class));
            break;
        case 4:
            startActivity(new Intent(this, ActivityProperties.class));
            break;
        }
    }


    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        drawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        drawerToggle.onConfigurationChanged(newConfig);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
        if (drawerToggle.onOptionsItemSelected(item)) {
          return true;
        }

        return super.onOptionsItemSelected(item);
    }

}
package com.BlackSheepApps.Eventpost.activities;
导入android.app.ActionBar;
导入android.app.Activity;
导入android.content.Intent;
导入android.content.res.Configuration;
导入android.content.res.Resources;
导入android.graphics.drawable.ColorDrawable;
导入android.os.Bundle;
导入android.support.v4.app.ActionBarDrawerToggle;
导入android.support.v4.widget.DrawerLayout;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入com.blacksheepps.Eventpost.R;
导入com.BlackSheepApps.Eventpost.adapters.adapternaviationdrawer;
公共类活动基本扩展活动{
私人ActionBar ActionBar;
私人资源;
私有字符串[]抽屉字符串;
私人抽屉布局;
私人诉讼律师事务所;
私有列表视图抽屉列表;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、抽屉布局);
//设置自定义的操作栏
actionbar=getActionBar();
resources=getResources();
actionbar.setBackgroundDrawable(新的ColorDrawable(resources.getColor(R.color.不透明蓝));
//做抽屉
drawerStrings=resources.getStringArray(R.array.drawer\u categories);
抽屉布局=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉列表=(列表视图)findViewById(R.id.left\u抽屉);
抽屉列表setAdapter(新的AdapterNavigationDrawer(这个-1,抽屉串));
setOnItemClickListener(新的DroperItemClickListener());
DroperToggle=new ActionBarDrawerToggle(此,抽屉布局,R.drawable.ic_抽屉,R.string.app_名称,R.string.app_名称){
/**当抽屉处于完全关闭状态时调用*/
公共无效onDrawerClosed(视图){
super.onDrawerClosed(视图);
InvalidateOptions SMenu();//创建对OnPrepareOptions SMenu()的调用
}
/**当抽屉处于完全打开状态时调用*/
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
InvalidateOptions SMenu();//创建对OnPrepareOptions SMenu()的调用
}
};
//将抽屉开关设置为抽屉定位器
抽屉布局。设置抽屉链接器(抽屉切换);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
registerViews();
}
/**
*此方法用于在布局中注册视图,但首先必须使用自建方法:registerLayout(int layout_id)在右侧注册正确的布局
*地点。
* 
*/
受保护的无效registerViews(){
}
受保护的无效ActionBarItemRemover(){
}
受保护的无效注册表布局(内部布局\u id){
LayoutInflater充气器=(LayoutInflater)this.getSystemService(布局\充气器\服务);
视图子视图=充气器。充气(布局id,(视图组)findViewById(布局id));
抽屉布局。添加视图(儿童视图);
}
私有类DrawerItemClickListener实现ListView.OnItemClickListener{
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
Log.d(“Eventpost”、“clicked”);
选择项目(arg2);
}
}
私有void selectItem(内部位置){
开关(位置){
案例0:
startActivity(新意图(此,ActivityHomeScreen.class));
打破
案例4:
startActivity(新意图(此,ActivityProperty.class));
打破
}
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
super.onPostCreate(savedInstanceState);
//在onRestoreInstanceState发生后同步切换状态。
drawerToggle.syncState();
}
@凌驾
公共无效OnConfiguration已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
drawerToggle.onConfigurationChanged(newConfig);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//如果返回,则将事件传递给ActionBarDrawerToggle
//则它已处理应用程序图标触摸事件
如果(抽屉切换选项项选定(项目)){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
适配器:

package com.BlackSheepApps.Eventpost.adapters;

import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.BlackSheepApps.Eventpost.R;

public class AdapterNavigationDrawer extends ArrayAdapter<String>{

    String[] button_names;
    Resources resources;

    public AdapterNavigationDrawer(Context context, int resource,
            String[] objects) {
        super(context, resource, objects);
        button_names = objects;
    }

    @Override
    public View getView(int pos, View convertView, ViewGroup parent){
        RelativeLayout row = (RelativeLayout)convertView;

        if(null == row){
            //No recycled View, we have to inflate one.
            LayoutInflater inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = (RelativeLayout)inflater.inflate(R.layout.drawer_row, null);
        }

        TextView text = (TextView) row.findViewById(R.id.drawer_text);
        //ImageView image =(ImageView) row.findViewById(R.id.drawer_image);
        text.setText(button_names[pos]);

        return row;
    }



}
package com.BlackSheepApps.Eventpost.adapters;
导入android.content.Context;
导入android.content.res.Resources;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入com.blacksheepps.Eventpost.R;
公共类适配器激活抽屉扩展阵列适配器{
字符串[]按钮名称;
资源;
公共AdapterNavigationDrawer(上下文、int资源、,
字符串[]对象){
超级(上下文、资源、对象);
按钮名称=对象;
}
@凌驾
公共视图getView(int pos、视图转换视图、视图组父视图){
RelativeLayout行=(RelativeLayout)convertView;
如果(空==行){
//没有循环视图,我们必须对其进行充气。
LayoutInflater充气器=(LayoutInflater)parent.getCo
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

        <TextView
            android:id="@+id/drawer_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="23sp" 
            android:textColor="#FDFFED"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="20dp"/>

</RelativeLayout>
/***
 * Called when invalidateOptionsMenu() is triggered
 */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    // if nav drawer is opened, hide the action items
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
    menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
    return super.onPrepareOptionsMenu(menu);
}
       public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);

            isDrawerOpen = false;
            // supportInvalidateOptionsMenu(); // creates call to
            // onPrepareOptionsMenu()
        }

        /** Called when a drawer has settled in a completely open state. */
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            isDrawerOpen = true;
            // supportInvalidateOptionsMenu(); // creates call to
            // onPrepareOptionsMenu()
        }
public void closeDrawer() {
    if (isDrawerOpen) {
        mDrawerLayout
                .closeDrawer((LinearLayout) findViewById(R.id.left_drawer));
    }
}