I'm new to Android so apologies if I've completely ballsed this up.
I've been playing with listview and baseadapter for the past week and cannot for the life of me get it to work.
The new error I'm getting back is:
01-26 14:22:03.979: E/AndroidRuntime(3449): FATAL EXCEPTION: main
01-26 14:22:03.979: E/AndroidRuntime(3449): Process: com.example.coreoffice, PID: 3449
01-26 14:22:03.979: E/AndroidRuntime(3449): android.content.res.Resources$NotFoundException: String resource ID #0x1
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.content.res.Resources.getText(Resources.java:244)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.TextView.setText(TextView.java:3888)
01-26 14:22:03.979: E/AndroidRuntime(3449): at com.example.coreoffice.HomeFragment$dataListAdapter.getView(HomeFragment.java:145)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.AbsListView.obtainView(AbsListView.java:2263)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.ListView.onMeasure(ListView.java:1175)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:651)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-26 14:22:03.979: E/AndroidRuntime(3449): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-26 14:22:03.979: E/AndroidRuntime(3449): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.View.measure(View.java:16497)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.Choreographer.doFrame(Choreographer.java:544)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.os.Handler.handleCallback(Handler.java:733)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.os.Handler.dispatchMessage(Handler.java:95)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.os.Looper.loop(Looper.java:136)
01-26 14:22:03.979: E/AndroidRuntime(3449): at android.app.ActivityThread.main(ActivityThread.java:5017)
01-26 14:22:03.979: E/AndroidRuntime(3449): at java.lang.reflect.Method.invokeNative(Native Method)
01-26 14:22:03.979: E/AndroidRuntime(3449): at java.lang.reflect.Method.invoke(Method.java:515)
01-26 14:22:03.979: E/AndroidRuntime(3449): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-26 14:22:03.979: E/AndroidRuntime(3449): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-26 14:22:03.979: E/AndroidRuntime(3449): at dalvik.system.NativeStart.main(Native Method)
This is the code:
package com.example.coreoffice;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class HomeFragment extends Fragment {
private int jcount = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
displayListView();
TextView t = (TextView) getActivity().findViewById(R.id.header);
t.setText("All Jobs (" + getCount() + ")");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list_jobs, container, false);
return view;
}
private void displayListView() {
// Array list of countries
String[] Title = { "Slag Lane", "Slag lane 1", "Street1" };
String[] Address = { "Road street", "Road Street 2", "Road street 3" };
String[] Description = { "Description 1", "Description 2",
"Description 3" };
String[] PostCode = { "wa32ez", "m30oft", "wn24sx" };
int[] JID = { 1, 2, 3 };
setCount(JID.length);
ListView listView = (ListView) getView().findViewById(R.id.listview);
listView.setAdapter(new dataListAdapter(getActivity(), Title, Address,
Description, PostCode, JID));
// enables filtering for the contents of the given ListView
// listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
goToSecondFragment(position);
}
});
}
public int getCount() {
return jcount;
}
public void setCount(int jcount) {
this.jcount = jcount;
}
private void goToSecondFragment(int position) {
Fragment fragment = new PagesFragmentContent();
Bundle bundle = new Bundle();
bundle.putInt("ID", position);
fragment.setArguments(bundle);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment, "frag2")
.addToBackStack("frag2").commit();
}
class dataListAdapter extends BaseAdapter {
String[] Title, Address, Description, PostCode;
int[] JID;
Context context;
public dataListAdapter(Context context, String[] stTitle,
String[] stAddress, String[] stDescription,
String[] stPostCode, int[] inJID) {
this.context = context;
Title = stTitle;
Address = stAddress;
Description = stDescription;
PostCode = stPostCode;
JID = inJID;
}
public int getCount() {
// TODO Auto-generated method stub
return JID.length;
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_jobs_row, null, false);
TextView title = (TextView) row.findViewById(R.id.title);
TextView address = (TextView) row.findViewById(R.id.address);
TextView description = (TextView) row
.findViewById(R.id.description);
TextView postcode = (TextView) row.findViewById(R.id.postcode);
TextView jid = (TextView) row.findViewById(R.id.jid);
title.setText(Title[position]);
address.setText(Address[position]);
description.setText(Description[position]);
postcode.setText(PostCode[position]);
jid.setText(JID[position]);
return (row);
}
}
}
list_jobs_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/title"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="#FFFF00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
<TextView android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
<TextView android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
<TextView android:id="@+id/postcode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
<TextView android:id="@+id/jid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
</LinearLayout>