package com.examples; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class DemoList extends ListActivity implements OnItemClickListener { private static final String TAG = "DemoList"; private ListView listview; private ArrayAdapter<String> listAdapter; // Our data for plotting private final double[][] data = { { 1, 1.0 }, { 2.0, 4.0 }, { 3.0, 10.0 }, { 4, 2.0 }, { 5.0, 20 }, { 6.0, 4.0 }, { 7.0, 1.0 }, }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "DemoList.onCreate()"); // Set the View Layer setContentView(R.layout.data_listview); // Get the Default declared ListView @android:list listview = getListView(); // List for click events to the ListView items listview.setOnItemClickListener(this); // Get the data to List<String> dataList = getDataStringList(data); // Create an Adapter to for viewing the ListView listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList); // Bind the adapter to the ListView listview.setAdapter(listAdapter); } /** * Convert the double[] to List<String> for display * @param dataVals * @return */ private List<String> getDataStringList(double[][] dataVals) { List<String> list = new ArrayList<String>(); for (int i = 0; i < dataVals.length; i++) { String datum = "[" + String.valueOf(dataVals[i][0]) + "," + String.valueOf(dataVals[i][1]) + "]"; list.add(datum); } return list; } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Toast.makeText(this, "Orientation Change", Toast.LENGTH_SHORT).show(); // Create an Intent to switch view to the Chart page view Intent intent = new Intent(this, DemoCharts.class); // The type "double[][]" does not go through as a SerializableExtra, so wrap in List. List<double[]> passedData = new ArrayList<double[]>(); for (double[] dd : data) { passedData.add(dd); } // Pass parameters along to the next page intent.putExtra("param", (Serializable)passedData); // Start the activity startActivity(intent); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long duration) { // Upon clicking item in list pop a toast String msg = "#Item: " + String.valueOf(position) + " - " + listAdapter.getItem(position); Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show(); } }