Automated import from //branches/cupcake/...@142469,142469
This commit is contained in:
committed by
The Android Open Source Project
parent
e94fa1ba1d
commit
edbabeb7fa
@@ -763,7 +763,16 @@ public class AlertDialog extends Dialog implements DialogInterface {
|
||||
P.mForceInverseBackground = useInverseBackground;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public Builder setRecycleOnMeasureEnabled(boolean enabled) {
|
||||
P.mRecycleOnMeasure = enabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a {@link AlertDialog} with the arguments supplied to this builder. It does not
|
||||
* {@link Dialog#show()} the dialog. This allows the user to do any extra processing
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.internal.app;
|
||||
|
||||
import static android.view.ViewGroup.LayoutParams.FILL_PARENT;
|
||||
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
@@ -49,6 +48,7 @@ import android.widget.ScrollView;
|
||||
import android.widget.SimpleCursorAdapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.android.internal.R;
|
||||
|
||||
@@ -672,7 +672,28 @@ public class AlertController {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class RecycleListView extends ListView {
|
||||
boolean mRecycleOnMeasure = true;
|
||||
|
||||
public RecycleListView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public RecycleListView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public RecycleListView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean recycleOnMeasure() {
|
||||
return mRecycleOnMeasure;
|
||||
}
|
||||
}
|
||||
|
||||
public static class AlertParams {
|
||||
public final Context mContext;
|
||||
public final LayoutInflater mInflater;
|
||||
@@ -711,7 +732,8 @@ public class AlertController {
|
||||
public boolean mForceInverseBackground;
|
||||
public AdapterView.OnItemSelectedListener mOnItemSelectedListener;
|
||||
public OnPrepareListViewListener mOnPrepareListViewListener;
|
||||
|
||||
public boolean mRecycleOnMeasure = true;
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked before the ListView
|
||||
* will be bound to an adapter.
|
||||
@@ -787,7 +809,8 @@ public class AlertController {
|
||||
}
|
||||
|
||||
private void createListView(final AlertController dialog) {
|
||||
final ListView listView = (ListView) mInflater.inflate(R.layout.select_dialog, null);
|
||||
final RecycleListView listView = (RecycleListView)
|
||||
mInflater.inflate(R.layout.select_dialog, null);
|
||||
ListAdapter adapter;
|
||||
|
||||
if (mIsMultiChoice) {
|
||||
@@ -886,6 +909,7 @@ public class AlertController {
|
||||
} else if (mIsMultiChoice) {
|
||||
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||
}
|
||||
listView.mRecycleOnMeasure = mRecycleOnMeasure;
|
||||
dialog.mListView = listView;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,10 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, DialogIn
|
||||
|
||||
// Set the key listener
|
||||
builder.setOnKeyListener(this);
|
||||
|
||||
// Since this is for a menu, disable the recycling of views
|
||||
// This is done by the menu framework anyway
|
||||
builder.setRecycleOnMeasureEnabled(false);
|
||||
|
||||
// Show the menu
|
||||
mDialog = builder.create();
|
||||
@@ -97,11 +101,8 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, DialogIn
|
||||
}
|
||||
|
||||
// Menu shortcut matching
|
||||
if (mMenu.performShortcut(keyCode, event, 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return mMenu.performShortcut(keyCode, event, 0);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
This layout file is inflated and used as the ListView to display the items.
|
||||
Assign an ID so its state will be saved/restored.
|
||||
-->
|
||||
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<view class="com.android.internal.app.AlertController$RecycleListView"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+android:id/select_dialog_listview"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
|
||||
Reference in New Issue
Block a user