/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.widget.focus; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.*; import com.google.android.collect.Lists; import java.util.List; public class ListOfEditTexts extends Activity { private int mLinesPerEditText = 12; private ListView mListView; private LinearLayout mLinearLayout; public ListView getListView() { return mListView; } @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); // create linear layout mLinearLayout = new LinearLayout(this); mLinearLayout.setOrientation(LinearLayout.VERTICAL); mLinearLayout.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); // add a button above Button buttonAbove = new Button(this); buttonAbove.setLayoutParams( new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); buttonAbove.setText("button above list"); mLinearLayout.addView(buttonAbove); // add a list view to it mListView = new ListView(this); mListView.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); mListView.setDrawSelectorOnTop(false); mListView.setItemsCanFocus(true); mListView.setLayoutParams((new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 0, 1f))); List bodies = Lists.newArrayList( getBody("zero hello, my name is android"), getBody("one i'm a paranoid android"), getBody("two i robot. huh huh."), getBody("three not the g-phone!")); mListView.setAdapter(new MyAdapter(this, bodies)); mLinearLayout.addView(mListView); // add button below Button buttonBelow = new Button(this); buttonBelow.setLayoutParams( new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); buttonBelow.setText("button below list"); mLinearLayout.addView(buttonBelow); setContentView(mLinearLayout); } String getBody(String line) { StringBuilder sb = new StringBuilder((line.length() + 5) * mLinesPerEditText); for (int i = 0; i < mLinesPerEditText; i++) { sb.append(i + 1).append(' ').append(line); if (i < mLinesPerEditText - 1) { sb.append('\n'); // all but last line } } return sb.toString(); } private static class MyAdapter extends ArrayAdapter { public MyAdapter(Context context, List bodies) { super(context, 0, bodies); } @Override public View getView(int position, View convertView, ViewGroup parent) { String body = getItem(position); if (convertView != null) { ((EditText) convertView).setText(body); return convertView; } EditText editText = new EditText(getContext()); editText.setText(body); return editText; } } }