package learn.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class LearnFormHActivity extends Activity {
private static final int OPTION_Setting = 0;
ImageView imgview;
LinearLayout llt1;
FrameLayout flt1;
ListView listView1;
private EditText passwordEditText;
private static Boolean isExit = false;
private static Boolean hasTask = false;
Timer tExit = new Timer();
private GroupListAdapter adapter = null;
private List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
private String[] AllItemNames = {"Network", "server_address",
"port", "Database", "createDB", "ChangeDB","Mode","On_line",
"Image","Help","About"};
private String[] infoNames={"","172.16.119.200","9526","","8f","9f","","offline","image"," "," "};
public enum Day
{
Network, server_address, port, Database,
createDB, ChangeDB, Mode,On_line,Image,
Help,About;
public static Day toDay(String str)
{
try {return valueOf(str); }
catch (Exception ex) {return Network;
}
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.happyfl);
imgview=(ImageView)findViewById(R.id.mainImage1);
llt1=(LinearLayout)findViewById(R.id.mainLinearLayout1);
listView1=(ListView)findViewById(R.id.listView1);
llt1.setVisibility(View.INVISIBLE);
setData();
adapter = new GroupListAdapter(this, list);
listView1.setAdapter(adapter);
listView1.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ListView listView = (ListView)parent;
Map<String, Object> map = (HashMap<String, Object>) listView.getItemAtPosition(position);
String userid = (String)map.get("Item");
String infoId=(String)map.get("infoItem");
switch(Day.toDay(userid))
{
case port:
LayoutInflater factory = LayoutInflater.from(LearnFormHActivity.this);
final View textEntryView = factory.inflate(R.layout.second, null);
final AlertDialog.Builder alert = new AlertDialog.Builder(LearnFormHActivity.this);
alert.setTitle("alert Title");
alert.setView(textEntryView);
alert.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
passwordEditText = (EditText)textEntryView.findViewById(R.id.username_edit);
//
tV2.setText(passwordEditText.getText().toString());
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("Item","port");
map2.put("infoItem", passwordEditText.getText().toString());
map2.put("check", false);
list.set(2, map2);
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
}
});
alert.show();
break;
case server_address:
break;
case Image:
Log.i("hello",infoId);
if(infoId=="Image")
{
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("Item","Image");
map2.put("infoItem", "Video");
map2.put("check", false);
list.set(8, map2);
adapter.notifyDataSetChanged();
}
else
{
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("Item","Image");
map2.put("infoItem", "Image");
map2.put("check", true);
list.set(8, map2);
adapter.notifyDataSetChanged();
}
break;
case On_line:
if(infoId=="offline")
{
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("Item","On_line");
map2.put("infoItem", "online");
map2.put("check", true);
list.set(7, map2);
adapter.notifyDataSetChanged();
}
else
{
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("Item","On_line");
map2.put("infoItem", "offline");
map2.put("check", false);
list.set(7, map2);
adapter.notifyDataSetChanged();
}
break;
}
}
});
}
public void setData(){
for(int i=0;i<AllItemNames.length;i++)
{
Map<String,Object> map = new HashMap<String, Object>();
map.put("Item",AllItemNames[i]);
map.put("infoItem",infoNames[i]);
map.put("check",false);
list.add(map);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, OPTION_Setting, 0, "setting");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int itemId = item.getItemId();
//
switch(itemId){
case OPTION_Setting:
imgview.setVisibility(View.INVISIBLE);
llt1.setVisibility(View.VISIBLE);
break;
}
return super.onOptionsItemSelected(item);
}
TimerTask task = new TimerTask() {
@Override
public void run() {
isExit = false;
hasTask = true;
}
};
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK){
//
System.out.println("user back down");
imgview.setVisibility(View.VISIBLE);
llt1.setVisibility(View.INVISIBLE);
if(isExit == false ) {
isExit = true;
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
if(!hasTask) {
tExit.schedule(task, 1000);
}
}
else
{
finish();
System.exit(0);
}
}
return false;
}
private static class GroupListAdapter extends ArrayAdapter<Map<String,Object>>{
public GroupListAdapter(Context context, List<Map<String,Object>> objects) {
super(context,0,objects);
}
@Override
public boolean isEnabled(int position) {
if(getItem(position).get("infoItem")==""){
return false;
}
return super.isEnabled(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if(getItem(position).get("infoItem")==""){
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_item_tag, null);
TextView textView = (TextView) view.findViewById(R.id.group_list_item_text);
textView.setText((String)getItem(position).get("Item"));
textView.setTextSize(18);
view.setBackgroundColor(Color.GRAY);
}else{
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_item, null);
TextView textView = (TextView) view.findViewById(R.id.title);
textView.setText((String)getItem(position).get("Item"));
textView.setTextSize(20);
TextView tV2=(TextView) view.findViewById(R.id.info);
tV2.setText((String)getItem(position).get("infoItem"));
tV2.setTextColor(Color.rgb(0, 255, 255));
tV2.setTextSize(15);
CheckBox checkBox1 = (CheckBox) view.findViewById(R.id.checkBox1);
checkBox1.setChecked((Boolean)getItem(position).get("check"));
ImageView imgView2=(ImageView)view.findViewById(R.id.imageView2);
if((String)getItem(position).get("Item")=="On_line"||(String)getItem(position).get("Item")=="Image")
{
checkBox1.setVisibility(View.VISIBLE);
imgView2.setVisibility(View.INVISIBLE);
}
}
return view;
}
}
}