Ja, jag har en arrayadapter, men WebObjekt skapar jag massvis av. De representerar bara innehållet i ett objekt i listan medans ArrayAdaptern som jag har håller reda på allt listan innehåller.
Om WebObjekt ärver från ArrayAdapter kommer jag att få en ArrayAdapter som innehåller en lista med ArrayAdapters. Det gör kanske inget?
Jag får inte den att ta det fortfarande. Den använder sig av toString ändå. Så här ser koden ut (jag tar med lite mer runtomkring om det har någon inverkan):
Kod:
public class ForumTab extends TabBase {
/** Called when the activity is first created. */
private ProgressDialog progressDialog;
private ArrayAdapter<WebObject> WebObjectListAdapter;
// En massa variabeldeklarationer bortklippta
protected class WebObject extends ArrayAdapter
// Eclipse sätter ut en varning på raden ovan "ArrayAdapter is a raw type. References to generic type ArrayAdapter<T> should be parameterized"
{
public WebObject(Context context, int textViewResourceId) {
super(context, textViewResourceId);
Text=Html.fromHtml("");
Link="";
IgnoreInHistory=false;
}
public Spanned Text=Html.fromHtml("");
public String Link="";
public boolean IgnoreInHistory=false;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Toast.makeText(ForumTab.this,"WebObject getView körs", Toast.LENGTH_LONG).show();
TextView v=new TextView(ForumTab.this);
v.setText("Hej");
return v;
}
public String toString(){
return Text.toString();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// En massa onStart-grejs bortklippt
}
}
Koden som fyller listan:
Kod:
private String FirstLevelHeading(String HTMLCode)
{
ArrayList<WebObject> WebObjectList;
WebObjectList=FormatFirstLevelHeading(HTMLCode);
WebObjectListAdapter=new ArrayAdapter<WebObject>(this, R.layout.forumpostrow, WebObjectList);
try{
ListView.setAdapter( WebObjectListAdapter );
}
catch (Exception e)
{
Toast.makeText(ForumTab.this, "Fel vid Listvisning: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
if(progressDialog!=null)
{
progressDialog.dismiss();
}
return HTMLCode;
}
private ArrayList<WebObject> FormatFirstLevelHeading(String HTMLCode)
{
String Heading="";
String Link="";
ArrayList<WebObject> HeadingList=new ArrayList<WebObject>();
int i=0;
while(HTMLCode.contains("<strong>") && i<500)
{
i++;
if(HTMLCode.indexOf("<strong>")>=0 && HTMLCode.indexOf("</strong>")>=0)
{
Heading=HTMLCode.substring(HTMLCode.indexOf("<strong>")+8,HTMLCode.indexOf("</strong>"));
WebObject MyWebObject=new WebObject(this, 0);
MyWebObject.Text=Html.fromHtml(Heading);
Link=Heading.substring(Heading.indexOf("<a href")+9,Heading.indexOf(">")-1);
Heading=Heading.substring(Heading.indexOf(">")+1,Heading.indexOf("</a>"));
MyWebObject.Link=Link;
HeadingList.add(MyWebObject);
}
HTMLCode=HTMLCode.substring(HTMLCode.indexOf("</strong>")+9);
}
if(i>=500)
{
Toast.makeText(this, "Ajdå, i=1000", Toast.LENGTH_LONG).show();
Heading="Ajdå, i=1000";
}
return HeadingList;
}