| /* |
| * 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 com.android.frameworktest.focus; |
| |
| import com.android.frameworktest.R; |
| import com.google.android.collect.Lists; |
| |
| import android.app.ListActivity; |
| import android.os.Bundle; |
| import android.widget.ArrayAdapter; |
| import android.widget.LinearLayout; |
| import android.widget.TextView; |
| import android.content.Context; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.view.LayoutInflater; |
| import android.webkit.WebView; |
| |
| import java.util.List; |
| |
| public class ListWithMailMessages extends ListActivity { |
| |
| |
| @Override |
| protected void onCreate(Bundle icicle) { |
| super.onCreate(icicle); |
| setContentView(R.layout.list_with_button_above); |
| |
| List<MailMessage> messages = Lists.newArrayList(); |
| messages.add(new MailMessage("hello!", "<p>this is a test " |
| + "message, with a bunch of text and stuff.</p>", true)); |
| |
| // String android = "android"; |
| String android = "<a href=\"www.android.com\">android</a>"; |
| |
| String sentance = "all work and no play makes " |
| + android + " a dull... robot!"; |
| StringBuffer longBody = new StringBuffer().append("<ol>\n"); |
| for (int i = 0; i < 12; i++) { |
| longBody.append("<li>").append(sentance).append("</li>"); |
| } |
| longBody.append("</ol>"); |
| |
| messages.add(new MailMessage("hello2!", longBody.toString(), true)); |
| messages.add(new MailMessage("phone number?", "<p>hey man, what's ur " |
| + "contact info? i need to mail you this photo of my two" |
| + " cats, they've gotten soooo fat!</p>", true)); |
| |
| setListAdapter(new MyAdapter(this, R.layout.mail_message, messages)); |
| getListView().setItemsCanFocus(true); |
| } |
| |
| |
| /** |
| * POJO mail message. |
| */ |
| static class MailMessage { |
| private String mSubject; |
| private String mBody; |
| private boolean mFocusable; |
| |
| |
| public MailMessage(String subject, String body) { |
| this(subject, body, false); |
| } |
| |
| |
| public MailMessage(String subject, String body, boolean focusable) { |
| mSubject = subject; |
| mBody = body; |
| mFocusable = focusable; |
| } |
| |
| public String getSubject() { |
| return mSubject; |
| } |
| |
| public void setSubject(String subject) { |
| this.mSubject = subject; |
| } |
| |
| public String getBody() { |
| return mBody; |
| } |
| |
| public void setBody(String body) { |
| this.mBody = body; |
| } |
| |
| |
| public boolean isFocusable() { |
| return mFocusable; |
| } |
| |
| public void setFocusable(boolean focusable) { |
| mFocusable = focusable; |
| } |
| } |
| |
| |
| public static class MyAdapter extends ArrayAdapter<MailMessage> { |
| |
| public MyAdapter(Context context, int resource, |
| List<MailMessage> objects) { |
| super(context, resource, objects); |
| } |
| |
| final String mimeType = "text/html"; |
| final String encoding = "utf-8"; |
| |
| |
| @Override |
| public View getView(int position, View convertView, ViewGroup parent) { |
| MailMessage message = getItem(position); |
| |
| LayoutInflater inflater = (LayoutInflater) |
| getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); |
| |
| LinearLayout messageUi = (LinearLayout) inflater |
| .inflate(R.layout.mail_message, null); |
| |
| TextView subject = (TextView) messageUi.findViewById(R.id.subject); |
| subject.setText(message.getSubject()); |
| |
| WebView body = (WebView) messageUi.findViewById(R.id.body); |
| body.loadData(message.getBody(), mimeType, encoding); |
| // body.setText(message.getBody()); |
| body.setFocusable(message.isFocusable()); |
| |
| return messageUi; |
| } |
| } |
| } |