<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/gridview01"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <GridView
   android:id="@+id/gridview01"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:numColumns="auto_fit"
   android:verticalSpacing="10dp"
   android:columnWidth="10dp"
   android:horizontalSpacing="60dp"
   android:gravity="center"
   android:stretchMode="columnWidth"/>   <ImageView
       android:id="@+id/ImageView01"
       android:scaleType="fitXY"
       android:layout_width="100dp"
       android:layout_height="98dp"
       >
   </ImageView>
   <TextView
       android:id="@+id/TextView01"
       android:layout_width="100dp"
       android:layout_height="wrap_content"
       android:textColor="#ffffff"
       android:textSize="24dp"
       android:paddingLeft="5dp"
       >
   </TextView>        
  <TextView
      android:id="@+id/TextView02"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textColor="#ffffff"
      android:textSize="24dp"
      android:paddingLeft="5dp"
      >
  </TextView>
  </LinearLayout>java代码,package com.example.sample_3_2_activity;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;public class MainActivity extends Activity {                     //创建继承Activity的类
    int [] drawableIds = {R.drawable.a,R.drawable.b,R.drawable.c};    //所有图片的id数组
    int [] nameIds = {R.string.android01,R.string.android02,R.string.android03};  //所有字符创id数组
    int [] msgIds  = {R.string.android001,R.string.android002,R.string.android003};
    
    public List<? extends Map<String,?>> generateDataList()  {    //方法声明
     ArrayList<Map<String,Object>>  list = new ArrayList<Map<String,Object>>();
     int rowCounter = drawableIds.length;   //得到表格的行数
     for(int i = 0;i<rowCounter;i++) {           //循环生成对应各个列数据
     HashMap<String, Object> hmap = new HashMap<String,Object>(); //HashMap集合
     hmap.put("col1", drawableIds[i]);                                //第一列为图片
     hmap.put("col2", this.getResources().getString(nameIds[i]));      //第二列为姓名
     hmap.put("col3", this.getResources().getString(msgIds[i]));         //第三列为描述
     list.add(hmap);                                                    //加入到集合当中
     }
return list;
    
    }
    
@Override
    public void onCreate(Bundle savedInstanceState) {               //继承Activity要重写的方法
        super.onCreate(savedInstanceState);                          //调用父类
        setContentView(R.layout.activity_main);                    //跳转到主界面
        
        GridView  gv = (GridView)this.findViewById(R.id.gridview01);
        SimpleAdapter sca = new SimpleAdapter(this,
         generateDataList(),
         R.layout.activity_main,                //行对应
         new String[] {"col1","col2","col3"},            //列名列表
         new int[] {R.id.ImageView01,R.id.TextView01,R.id.TextView02});           //列对应空间id列表
        gv.setAdapter(sca);
        gv.setOnItemClickListener(           //设置选项中的监听器
         new OnItemClickListener() {   //匿名内部类 @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub

TextView tv = (TextView)findViewById(R.id.TextView01);  //获取主界面TextView
LinearLayout ll = (LinearLayout)arg1;
TextView tvn = (TextView)ll.getChildAt(1);   //获取其中的TextView
TextView tvnl = (TextView)ll.getChildAt(2);   //获取其中的TextView
StringBuilder sb = new StringBuilder();
sb.append(tvn.getText());
sb.append("");
sb.append(tvnl.getText());
tv.setText(sb.toString());              //信息设置
}
public void onNothingSelected(AdapterView<?> arg0) {       //重写onNothingSelected方法

}
        
        });
        gv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
TextView tv = (TextView)findViewById(R.id.TextView01);  //获取主界面TextView
LinearLayout ll = (LinearLayout)arg1;
TextView tvn = (TextView)ll.getChildAt(1);   //获取其中的TextView
TextView tvnl = (TextView)ll.getChildAt(2);   //获取其中的TextView
StringBuilder sb = new StringBuilder();
sb.append(tvn.getText());
sb.append("");
sb.append(tvnl.getText());
tv.setText(sb.toString());              //信息设置
}
        
        });
    }    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
问题是运行不出结果,没找到错,运行处强制关闭的界面,跪求大师解决,弄了一天了啊。我是初学者。

解决方案 »

  1.   

    看了啊!刚改动了一些,还是不行,我再重新给一下代码,帮个忙运行一下看咯,layout有两个xml文件(main.xml,grid_row.xml)
    activity_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/gridview01"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
      
       <ImageView
           android:id="@+id/ImageView01"
           android:scaleType="fitXY"
           android:layout_width="100dp"
           android:layout_height="98dp"
           >
       </ImageView>
       <TextView
           android:id="@+id/TextView01"
           android:layout_width="100dp"
           android:layout_height="wrap_content"
           android:textColor="#ffffff"
           android:textSize="24dp"
           android:paddingLeft="5dp"
           >
       </TextView>        
      <TextView
          android:id="@+id/TextView02"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textColor="#ffffff"
          android:textSize="24dp"
          android:paddingLeft="5dp"
          >
      </TextView>
      </LinearLayout>
    grid_row.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/gridview01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:numColumns="auto_fit"
       android:verticalSpacing="10dp"
       android:columnWidth="10dp"
       android:horizontalSpacing="60dp"
       android:gravity="center"
       android:stretchMode="columnWidth" >
        </GridView>string.xml:
    <resources>    <string name="app_name">Sample_3_2_Activity</string>
        <string name="hello_world">Hello world!</string>
        <string name="menu_settings">Settings</string>
        <string name="title_activity_main">MainActivity</string>
        <string name="android01">安卓01</string>
        <string name="android02">安卓02</string>
        <string name="android03">安卓03</string>
        <string name="android001">安卓001</string>
        <string name="android002">安卓002</string>
        <string name="android003">安卓003</string>
    </resources>java代码:
    package com.example.sample_3_2_activity;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.GridView;
    import android.widget.LinearLayout;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;public class MainActivity extends Activity {                     //创建继承Activity的类
        int [] drawableIds = {R.drawable.a,R.drawable.b,R.drawable.c};    //所有图片的id数组
        int [] nameIds = {R.string.android01,R.string.android02,R.string.android03};  //所有字符创id数组
        int [] msgIds  = {R.string.android001,R.string.android002,R.string.android003};
        
        public List<? extends Map<String,?>> generateDataList()  {    //方法声明
         ArrayList<Map<String,Object>>  list = new ArrayList<Map<String,Object>>();
         int rowCounter = drawableIds.length;   //得到表格的行数
         for(int i = 0;i<rowCounter;i++) {           //循环生成对应各个列数据
         HashMap<String, Object> hmap = new HashMap<String,Object>(); //HashMap集合
         hmap.put("col1", drawableIds[i]);                                //第一列为图片
         hmap.put("col2", this.getResources().getString(nameIds[i]));      //第二列为姓名
         hmap.put("col3", this.getResources().getString(msgIds[i]));         //第三列为描述
         list.add(hmap);                                                    //加入到集合当中
         }
    return list;
        
        }
        
    @Override
        public void onCreate(Bundle savedInstanceState) {               //继承Activity要重写的方法
            super.onCreate(savedInstanceState);                          //调用父类
            setContentView(R.layout.activity_main);                    //跳转到主界面
            
            GridView  gv = (GridView)this.findViewById(R.id.gridview01);
            SimpleAdapter sca = new SimpleAdapter(this,
             generateDataList(),
             R.layout.grid_row,                //行对应
             new String[] {"col1","col2","col3"},            //列名列表
             new int[] {R.id.ImageView01,R.id.TextView01,R.id.TextView02});           //列对应空间id列表
            gv.setAdapter(sca);
            gv.setOnItemClickListener(           //设置选项中的监听器
             new OnItemClickListener() {   //匿名内部类 @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    // TODO Auto-generated method stub

    TextView tv = (TextView)findViewById(R.id.TextView01);  //获取主界面TextView
    LinearLayout ll = (LinearLayout)arg1;
    TextView tvn = (TextView)ll.getChildAt(1);   //获取其中的TextView
    TextView tvnl = (TextView)ll.getChildAt(2);   //获取其中的TextView
    StringBuilder sb = new StringBuilder();
    sb.append(tvn.getText());
    sb.append("");
    sb.append(tvnl.getText());
    tv.setText(sb.toString());              //信息设置
    }
    public void onNothingSelected(AdapterView<?> arg0) {       //重写onNothingSelected方法

    }
            
            });
            gv.setOnItemClickListener(new OnItemClickListener() { @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    // TODO Auto-generated method stub
    TextView tv = (TextView)findViewById(R.id.TextView01);  //获取主界面TextView
    LinearLayout ll = (LinearLayout)arg1;
    TextView tvn = (TextView)ll.getChildAt(1);   //获取其中的TextView
    TextView tvnl = (TextView)ll.getChildAt(2);   //获取其中的TextView
    StringBuilder sb = new StringBuilder();
    sb.append(tvn.getText());
    sb.append("");
    sb.append(tvnl.getText());
    tv.setText(sb.toString());              //信息设置
    }
            
            });
        }    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }
    谢啦!
      

  2.   

    在onCreate方法中 
    GridView gv = (GridView)this.findViewById(R.id.gridview01);
    强制类型转换出错了,楼主试图把LinearLayout转为GridView
      

  3.   

    另外还有两个View的id为R.id.gridview01
    SimpleAdapter不是那么用的吧,传进去的layout中包含有GridView。
      

  4.   

    自己看console
    应该有说什么错
      

  5.   

    能不能把logcat里的报错信息贴出来,看哪里报错,就好改了
      

  6.   

    用这种标题吸引人不是太好 呵呵
    还是要认真查看一下logcat
      

  7.   

    好经典 把日志贴出来。就是logcat里面那个异常信息。你这样就算给你说哪哪错了,说不定你改了又来另一个异常。
      

  8.   

    XXX 。 这么多代码,蛋疼,格式也不正确、