Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 1 addition & 14 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
buildToolsVersion '26.0.2'

defaultConfig {
applicationId "com.exun.test.navexpandablelist"
Expand All @@ -21,6 +21,7 @@ android {

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support.constraint:constraint-layout:1.1.2'
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"></activity>
</application>

</manifest>
</manifest>
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.exun.test.navexpandablelist;

import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.Toast;

Expand All @@ -24,18 +26,31 @@ public class MainActivity extends AppCompatActivity implements ExpandableListVie
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;

//Second activity button declaration
Button secondActivityBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//assigning id to secondActivityBtn
secondActivityBtn=(Button)findViewById(R.id.secondActivityBtn);

toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);

initDrawer();

// setting onclickListener for secondActivityBtn
secondActivityBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(MainActivity.this,SecondActivity.class);
startActivity(i);
}
});
}

private void initDrawer() {
Expand Down
136 changes: 136 additions & 0 deletions app/src/main/java/com/exun/test/navexpandablelist/SecondActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
package com.exun.test.navexpandablelist;

import android.content.res.Resources;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

public class SecondActivity extends AppCompatActivity implements ExpandableListView.OnChildClickListener{

Toolbar toolbar;
private DrawerLayout drawer;
private ExpandableListView drawerList;
private ActionBarDrawerToggle actionBarDrawerToggle;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;

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


toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);

initDrawer();

}
private void initDrawer() {
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

drawerList = (ExpandableListView) findViewById(R.id.left_drawer);

// preparing list data
prepareListData();

drawerList.setAdapter(new NavAdapter(this, listDataHeader, listDataChild));

drawerList.setOnChildClickListener(this);

actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawer,toolbar,R.string.drawer_open , R.string.drawer_close ){

@Override
public void onDrawerClosed(View drawerView) {
// Code here will be triggered once the drawer closes as we don't want anything to happen so we leave this blank
super.onDrawerClosed(drawerView);
}

@Override
public void onDrawerOpened(View drawerView) {
// Code here will be triggered once the drawer open as we don't want anything to happen so we leave this blank

super.onDrawerOpened(drawerView);
}
};

//Setting the actionbarToggle to drawer layout
drawer.setDrawerListener(actionBarDrawerToggle);

//calling sync state is necessay or else your hamburger icon wont show up
actionBarDrawerToggle.syncState();
}

/*
* Preparing the list data
*/
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();


// Adding headers
Resources res = getResources();
String[] headers = res.getStringArray(R.array.nav_drawer_labels);
listDataHeader = Arrays.asList(headers);

//Adding child data

// //Dynamic method
// for (int i =0; i<listDataHeader.size(); i++){
//
// //Save data in array
// String[] childData = res.getStringArray(R.array.elements_home);
//
// //Put data in List
// List<String> listChild;
// listChild = Arrays.asList(childData);
//
// //Add to hashMap
// listDataChild.put(listDataHeader.get(i),listChild);
// }

// Static method
List<String> home,friends,notifs;
String[] shome,sfriends,snotifs;

shome = res.getStringArray(R.array.elements_home);
home = Arrays.asList(shome);

sfriends = res.getStringArray(R.array.elements_friends);
friends = Arrays.asList(sfriends);

snotifs = res.getStringArray(R.array.elements_notifs);
notifs = Arrays.asList(snotifs);

// Add to hashMap
listDataChild.put(listDataHeader.get(0), home); // Header, Child data
listDataChild.put(listDataHeader.get(1), friends);
listDataChild.put(listDataHeader.get(2), notifs);
}

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(
getApplicationContext(),
listDataHeader.get(groupPosition)
+ " : "
+ listDataChild.get(
listDataHeader.get(groupPosition)).get(
childPosition), Toast.LENGTH_SHORT)
.show();
return false;
}
}
14 changes: 14 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,23 @@
android:layout_height="0dp"
android:layout_weight="1" />

<Button
android:id="@+id/secondActivityBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open Second Activity"
android:padding="2dp"
android:layout_marginLeft="100dp"
android:layout_marginBottom="250dp"
android:textColor="@android:color/white"
android:background="@android:color/holo_green_light"
/>


</LinearLayout>



<ExpandableListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
Expand Down
49 changes: 49 additions & 0 deletions app/src/main/res/layout/activity_second.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout">

<!--tools:context="com.exun.test.navexpandablelist.SecondActivity"-->


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
</LinearLayout>

<FrameLayout
android:id="@+id/container_body"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />


</LinearLayout>



<ExpandableListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:dividerHeight="1dp"
android:divider="@color/list_divider"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background" />

</android.support.v4.widget.DrawerLayout>
3 changes: 2 additions & 1 deletion app/src/main/res/layout/list_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
android:paddingTop="5dp"
android:text="Hello"
android:paddingBottom="5dp"
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" />
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"
/>

</LinearLayout>
7 changes: 6 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.android.tools.build:gradle:3.0.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand All @@ -15,6 +19,7 @@ buildscript {
allprojects {
repositories {
jcenter()
google()
}
}

Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Wed Oct 21 11:34:03 PDT 2015
#Thu Jun 21 00:31:35 IST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip