package com.piglet.ui; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.TableLayout; import android.widget.TableLayout.LayoutParams; import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; import com.piglet.R; import com.piglet.core.MysqlHelper; import com.piglet.utils.UnitConverter; import com.umeng.analytics.MobclickAgent; public class AboutActivity extends Activity { private TableLayout table; private List<Map<String, Object>> rows; public static final int WHAT_DATA_RETURNED = 0; public static final int WHAT_DATA_EMPTY = 1; /** * Called when the activity is first created. * * @param savedInstanceState * If the activity is being re-initialized after previously being * shut down then this Bundle contains the data it most recently * supplied in onSaveInstanceState(Bundle). <b>Note: Otherwise it * is null.</b> */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); table = (TableLayout) findViewById(R.id.table); initData(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(com.piglet.R.menu.main, menu); return true; } private void initData() { MysqlHelper.init(getApplicationContext()); rows = MysqlHelper.getAbout(); refreshUi(); } private void refreshUi() { table.removeAllViews(); if (rows != null && !rows.isEmpty()) { int padding = UnitConverter.dip2px(this, 10); TableRow rowhead = new TableRow(this); for (final Map.Entry<String, Object> entry : rows.get(0).entrySet()) { TextView tv = new TextView(this); tv.setText(entry.getKey() + ""); tv.setPadding(padding, padding, padding, padding); tv.setBackgroundResource(R.drawable.rectbghead); tv.setTextAppearance(getApplicationContext(), R.style.base_text_title); tv.setTextColor(0xff000000); tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "标题" + entry.getKey(), Toast.LENGTH_LONG).show(); } }); rowhead.addView(tv, new TableRow.LayoutParams(-2, -1)); } TableLayout.LayoutParams paramshead = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); table.addView(rowhead, paramshead); int i = 0; for (Map<String, Object> map : rows) { TableRow row = new TableRow(this); i++; final int ci = i; int j = 0; for (final Map.Entry<String, Object> entry : map.entrySet()) { TextView tv = new TextView(this); j++; final int cj = j; tv.setText(entry.getValue() + ""); tv.setPadding(padding, padding, padding, padding); tv.setBackgroundResource(R.drawable.rectbg); tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String value = entry.getValue() == null ? "null" : entry.getValue().toString(); Toast.makeText(getApplicationContext(), "(" + ci + "," + cj + ")" + value, Toast.LENGTH_LONG).show(); } }); row.addView(tv, new TableRow.LayoutParams(-2, -1)); } TableLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); table.addView(row, params); } } } public void onResume() { super.onResume(); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPause(this); } }