跪求大师指点,这是运行结果弹出强制关闭的界面。代码如下:帮个忙运行一下看咯,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;
}
}谢啦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货