-1

I have an activity that includes a navigation list and it slides from the left and it is working but I want the list to be at the right side.

I tried to change the gravity_layout from my xml file but the app crashed.

package com.parse.starter;

import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import com.parse.ParseUser;

public class UserDrawer extends AppCompatActivity {

//Declaring Variables
private ListView DrawerList;
private ArrayAdapter<String> Adapter;
private ActionBarDrawerToggle DrawerToggle;
private DrawerLayout DrawerLayout;
private String ActivityTitle;



final ParseUser currentUser = ParseUser.getCurrentUser();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_drawer);

    DrawerList = (ListView) findViewById(R.id.navList);
    DrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActivityTitle = getTitle().toString();
    addDrawerItems();
    setupDrawer();

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

    Button Sample = (Button) findViewById(R.id.button);

}

//Method To Add Items To The List View
private void addDrawerItems() {
    String[] DArray = {"Job List", "Notifications", "Messages", "Log Out"};
    Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DArray);
    DrawerList.setAdapter(Adapter);
    DrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (position == 0) {
                Intent i0 = new Intent(UserDrawer.this, Set_Info.class);
                startActivity(i0);
            } else if (position == 1) {
                //Intent i1 = new Intent(Drawer1.this, AddPatient.class);
                //startActivity(i1);
            } else if (position == 2) {
                //Intent i2 = new Intent(Drawer1.this, Notifications.class);
                //startActivity(i2);
            } else if (position == 3) {
                //Intent i3 = new Intent(Drawer1.this, Message_Log.class);
                //startActivity(i3);
            } else if (position == 4) {
                Intent i4 = new Intent(UserDrawer.this, MainActivity.class);
                startActivity(i4);
                Toast.makeText(getApplicationContext(), "You are Logged Out", Toast.LENGTH_LONG).show();
                finish();
            }

        }
    });
}

private void setupDrawer() {
    DrawerToggle = new ActionBarDrawerToggle(this, DrawerLayout,
            R.string.drawer_open, R.string.drawer_close) {

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

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            getSupportActionBar().setTitle(ActivityTitle);
            invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
        }
    };
    DrawerToggle.setDrawerIndicatorEnabled(true);
    DrawerLayout.setDrawerListener(DrawerToggle);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    // Activate the navigation drawer toggle
    if (DrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    DrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    DrawerToggle.onConfigurationChanged(newConfig);
}
@SuppressWarnings("ResourceType")
public void SampleClick(View view) {
    try {
        Intent i = new Intent(UserDrawer.this,Set_Info.class);
        startActivity(i);
    } catch (Exception e) {

    }
}


}
davejal
  • 6,009
  • 10
  • 39
  • 82
Deve
  • 137
  • 2
  • 9

2 Answers2

0

http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html

Drawer positioning and layout is controlled using the android:layout_gravity attribute on child views corresponding to which side of the view you want the drawer to emerge from: left or right. (Or start/end on platform versions that support layout direction.)

i.e. it's android:layout_gravity instead of gravity_layout and it should no longer crash.

damian
  • 2,001
  • 20
  • 38
0

try gravity:Endor Right instead of gravity:Startread this answer

Community
  • 1
  • 1
inkedTechie
  • 684
  • 5
  • 13