Skip to content
Merged
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
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6+'
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
apply plugin: 'android'
Expand All @@ -12,8 +12,8 @@ dependencies {
}

android {
compileSdkVersion 17
buildToolsVersion "17"
compileSdkVersion 19
buildToolsVersion "19.0.1"

defaultConfig {
minSdkVersion 14
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 @@
#Sun Dec 15 06:09:12 PST 2013
#Thu Feb 13 00:16:26 EET 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip
distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip
9 changes: 9 additions & 0 deletions res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,14 @@
android:onClick="button3clicked"
android:text="@string/_3rd_button_text"
android:layout_below="@id/button2"/>

<Button
android:id="@+id/button4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="button4clicked"
android:text="@string/_4th_button_text"
android:layout_below="@id/button3"/>

</RelativeLayout>
4 changes: 4 additions & 0 deletions res/layout/qustom_dialog_layout.xml
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,8 @@ https://github.com/android/platform_frameworks_base/blob/master/core/res/res/lay
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"/>
</LinearLayout>
1 change: 1 addition & 0 deletions res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
<string name="alert_image_content_description">Alert Image</string>
<string name="ip_address_text">IP address</string>
<string name="ip_address_hint">0.0.0.0</string>
<string name="_4th_button_text">Custom dialog with single choice items and adapter</string>

</resources>
52 changes: 51 additions & 1 deletion src/com/qustom/dialog/QustomDialogBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,21 @@
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class QustomDialogBuilder extends AlertDialog.Builder {
Expand Down Expand Up @@ -198,7 +205,50 @@ public void onClick(View v) {

return this;
}


@Override
public Builder setSingleChoiceItems (ListAdapter adapter, int checkedItem, final DialogInterface.OnClickListener listener) {
final ListView listView = (ListView) mDialogView.findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setItemChecked(checkedItem, true);


if (listener != null) {
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listener.onClick(QustomDialogBuilder.this.mDialog, position);
}
});
}

return this;
}

@Override
public Builder setSingleChoiceItems(CharSequence[] items, int checkedItem,
final DialogInterface.OnClickListener listener) {
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(),
android.R.layout.simple_list_item_single_choice, android.R.id.text1, items);

return this.setSingleChoiceItems(adapter, checkedItem, listener);
}

@Override
public Builder setSingleChoiceItems(int itemsId, int checkedItem, final DialogInterface.OnClickListener listener) {
return this.setSingleChoiceItems(getContext().getResources().getTextArray(itemsId), checkedItem, listener);
}

public Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn,
final DialogInterface.OnClickListener listener) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(getContext(),
android.R.layout.simple_list_item_single_choice, cursor,
new String[]{labelColumn}, new int[]{android.R.id.text1});

return this.setSingleChoiceItems(adapter, checkedItem, listener);
}

public boolean isEnabled(int position, int[] disabledOptions) {
if (disabledOptions != null) {
for (int i = 0; i < disabledOptions.length; i++) {
Expand Down
68 changes: 68 additions & 0 deletions src/com/qustom/dialog/TestDialogActivity.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.qustom.dialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class TestDialogActivity extends Activity {
Expand Down Expand Up @@ -106,6 +108,72 @@ public void onClick(DialogInterface dialog, int which) {

qustomDialogBuilder.show();
}

public void button4clicked(View view) {
String[] sa = {
"Alpha",
"Bravo",
"Charlie",
"Delta",
"Echo",
"Foxtrot",
"Golf",
"Hotel",
"India",
"Juliett",
"Kilo",
"Lima",
"Mike",
"November",
"Oscar",
"Papa",
"Quebec",
"Romeo",
"Sierra",
"Tango",
"Uniform",
"Victor",
"Whiskey",
"X-ray",
"Yankee",
"Zulu"
};

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice);
adapter.addAll(sa);

QustomDialogBuilder qustomDialogBuilder = (QustomDialogBuilder) new QustomDialogBuilder(this)
.setTitle("Dialog with single choice items and adapter")
.setTitleColor(HALLOWEEN_ORANGE)
.setDividerColor(HALLOWEEN_ORANGE)
.setIcon(getResources().getDrawable(R.drawable.ic_launcher))
.setSingleChoiceItems(adapter, 1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TestDialogActivity.this, "item " + which + " clicked...", Toast.LENGTH_SHORT).show();
}
});

qustomDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TestDialogActivity.this, "'OK' clicked...", Toast.LENGTH_SHORT).show();
}
});

qustomDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TestDialogActivity.this, "'Cancel' clicked...", Toast.LENGTH_SHORT).show();
}
});

qustomDialogBuilder.show();

adapter.add("new item");
adapter.notifyDataSetChanged();
}

@Override
public void onCreate(Bundle savedInstanceState) {
Expand Down