1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Bei klick auf ListView Adresse öffnen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von -chriss-, 19.01.2011.

  1. -chriss-, 19.01.2011 #1
    -chriss-

    -chriss- Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    6
    Registriert seit:
    26.10.2009
    Hallo,
    ich habe zu Testzwecken diese HashMap-Liste:

    Code:
    import java.util.ArrayList;
    import java.util.HashMap;
    import android.app.Activity;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;
    import android.widget.AdapterView.OnItemClickListener;
    
    public class CustomListView extends Activity {
        
        // ArrayList which contains our HashMap's with different objects
        private  ArrayList<HashMap<String, Object>> myList;
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
                 
            // Create Hash Map
            myList = new ArrayList<HashMap<String, Object>>();
            
            // Fill data
            addDataToList();
            
            // View
            ListView mainListView = (ListView) findViewById(R.id.main_listview);
            
            // Adapter
            SimpleAdapter aa = new SimpleAdapter(this, myList, R.layout.row,
                    new String[] {"name", "town"}, 
                    new int[] {R.id.txt_name, R.id.txt_town});
            mainListView.setAdapter(aa);
            
            // Listener
            mainListView.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                  // Get the HashMap of the clicked item
                  HashMap<String, Object> user = myList.get(position);
                  
                  // Get Attribute name of the HashMap
                  String name = (String)user.get("name");
                  String town = (String)user.get("town");
                  StringBuffer linkXML = new StringBuffer();
                  
                  // Get Attribute name of the HashMap
                  String name = (String)user.get("name");
                  String town = (String)user.get("town");
                  String url = (String)user.get("link");
                                
    
                        try {
                            URL urlXML = new URL(url);
                            InputStreamReader isr;
                            try {
                                isr = new InputStreamReader(urlXML.openStream());
                                BufferedReader in = new BufferedReader(isr);
    
                                String inputLine;
    
                                while ((inputLine = in.readLine()) != null){
                                   linkXML.append(inputLine);
                                }
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
    
                            }
                        catch (MalformedURLException e) {
                            e.printStackTrace();
                        }
    
                  [COLOR=Blue]// Create new Dialog
                  final Dialog dialog = new Dialog(CustomListView.this);
                  dialog.setTitle("Menü der " + name + town);
                  TextView txtDescription = new TextView(CustomListView.this);
                  txtDescription.setPadding(10, 0, 0, 10);
                  txtDescription.setText("Detail Description");
                  dialog.setContentView(txtDescription);[/COLOR]
                  
                  dialog.setCanceledOnTouchOutside(true);
                  dialog.show();
              }
            });  
        }
        
        /**
         * This method is used, to fill data into our List
         */
        private void addDataToList(){
            HashMap<String, Object> map1 = new HashMap<String, Object>();
            map1.put("name","Mensa ");
            map1.put("town","Furtwangen");
           map1.put("[COLOR=Lime]link[/COLOR]", "[COLOR=Red]http://www.studentenwerk.uni-freiburg.de/index.php?id=speiseplaene&no_cache=1&L=&Tag=0&Ort_ID=641[/COLOR]");
            
            HashMap<String, Object> map2 = new HashMap<String, Object>();    
            map2.put("name", "Mensa ");
            map2.put("town", "Trossingen");
           map2.put("[COLOR=Lime]link[/COLOR]", "[COLOR=Red]http://www.studentenwerk.uni-freiburg.de/index.php?id=speiseplaene&no_cache=1&L=&Tag=0&Ort_ID=672[/COLOR]");
    // Der letzte Teil des Hashmapeintrages wird mit Absicht nicht angezeigt, sondern nur mitgegeben. 
            
            myList.add(map1);
            myList.add(map2);    
        }
    }
    Die row.xml:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout android:id="@+id/RelativeLayout01"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:paddingBottom="10dp" android:paddingTop="10dp"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <LinearLayout android:id="@+id/LinearLayout01"
            android:layout_height="wrap_content" android:gravity="center_vertical"
            android:layout_width="fill_parent">
            
        <TableLayout android:id="@+id/TableLayout01"
                android:layout_below="@+id/LinearLayout01" android:layout_height="wrap_content"
                android:layout_width="fill_parent" android:layout_marginLeft="10dp">
                <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView android:id="@+id/TextView01"
                        android:layout_width="wrap_content" android:layout_height="wrap_content"
                        android:textColor="#FFFFFF" android:paddingRight="10dp"
                        android:text="Name:"></TextView>
                    <TextView android:layout_height="wrap_content"
                        android:layout_width="wrap_content" android:id="@+id/txt_name"
                        android:textColor="#FFFFFF" android:textStyle="bold"
                        android:paddingBottom="5dp"></TextView>
                </TableRow>
                <TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView android:layout_width="wrap_content"
                        android:layout_height="wrap_content" android:textColor="#FFFFFF"
                        android:paddingRight="10dp" android:text="Town:" android:id="@+id/TextView02"></TextView>
                    <TextView android:layout_height="wrap_content"
                        android:layout_width="wrap_content" android:textColor="#FFFFFF"
                        android:paddingBottom="5dp" android:id="@+id/txt_town"></TextView>
                </TableRow>
                
            </TableLayout>
        </LinearLayout>
    </RelativeLayout>
    Die main.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:id="@+id/main_listview">
    </ListView>
    
    
    string.xml:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">Hello World, ListView!</string>
        <string name="app_name">CustomListView</string>
        <string name="menu_title">Menü der</string>
    </resources>
    
    
    So nun hab ich die komplette Seite im String inputLine, das Problem es ist nichts geparst...dh. ich hab noch den ganzen xml und html code drin... den ich ja für die letztendliche Anzeige nicht brauche (will).

    Alternativ kann ich auch mit der URL eine neue webView-Activity starten...zeigt aber dann die komplette Seite an...
     
    Zuletzt bearbeitet: 19.01.2011

Diese Seite empfehlen