我的第一个程序

磕磕绊绊的写了第一个程序,电脑报价单。工作需要,经常做些报价单,所有就有了这个小程序。虽然能运行了,但其中的一些代码不甚了解,在这里做个学习总结。

 

基本界面。

 

用到SQLite数据库

package com.example.diyquote;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MySQLiteOpenHelper extends SQLiteOpenHelper
{
    // 定义数据库的版本
    public static final int DB_VERSION = 1;

    // 定义数据库的名字
    public static final String DB_NAME = "mydata.db";

    public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)
    {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(StrName.STR_MAIN_LIST);  //StrName为另外定义的包含全部需要用的常量的类,以方便使用。这个是建立首页ListView需要的数据库,用来存储客户和渠道信息
        db.execSQL(StrName.DETAILED_TEABLE);//另外的表,存储所有的配件的报价。

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {

    }

}

 

 

定义了一个需要常用的常量的类StrName,方便使用

 

package com.example.diyquote;

import java.text.SimpleDateFormat;
import java.util.Date;

public class StrName
{
    public static final String TEABLE_NAME_MAINLIST="mainlist";  //用来存储客户和渠道信息的表的名字
    public static final String TABLE_NAME_DETAILED="detailed";  //存储 配件信息价格之类的表的名字。

    public static final String DETAILED_TEABLE= "create table detailed ("  //建立表
               +" _id integer primary key autoincrement,"  //_id字段,ListView需要
               +" imgsrc text,"    //配件的IMG,并未使用
               +" peijian text,"  //配件的名字,CPU,主板,显卡 之类
               +" xinghao text," //配件的型号
               +" baojia integer," //报价
               +" jinjia integer,"  //进价
               +" shuliang integer," //数量
               +" lirun integer,"  //利润
               +" xiaoji integer," //利润小计
               +" mainid integer)";  //maiId,与mainlist表中的_id对应,每个客户和渠道信息对应一个mainlist中的_id,也就是这里的mainid

    public static final String STR_MAIN_LIST="create table mainlist ("  //建表
               +" _id integer primary key autoincrement,"  //_id字段
               +" textlist text,"  //客户和渠道信息
               +" date text)";  //存储时的日期

    public static String getDate()  //获取系统日期时间
    {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date curDate = new Date(System.currentTimeMillis());
        String date = formatter.format(curDate);

        return date;
    }

}

 

MainActvity

 

package com.example.diyquote;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class MainActivity extends Activity
{

    private MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(this, MySQLiteOpenHelper.DB_NAME, null,
            MySQLiteOpenHelper.DB_VERSION);
    private TextView add_textView;

    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        SQLiteDatabase db = dbHelper.getReadableDatabase();
        add_textView = (TextView) findViewById(R.id.add_textView);
        ListView listView = (ListView) findViewById(R.id.main_listview);

        add_textView.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View arg0)
            {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                intent.putExtra("updataoradd", 1); // 传递过去数值用来swich判断是哪个启动的addActivity  修改和增加都调用addActivity
                startActivityForResult(intent, 1);

            }
        });

        listviewShow();

        // 定义Listview的长按菜单
        registerForContextMenu(listView);

    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
    {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("菜单");
        menu.add(0, 1, 0, "详细");
        menu.add(0, 2, 0, "修改");
        menu.add(0, 3, 0, "删除");
    }

    @Override
    public boolean onContextItemSelected(MenuItem menu)
    {
        // TODO Auto-generated method stub
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menu.getMenuInfo();
        int id = (int) info.id;// 此id 对应数据库里的_id

        Cursor cursor = db.query("detailed", null, "mainid=?", new String[] { id + "" }, null, null, null); //查询 detailed中 字段 mainid 中值为     mainlist表的_id   的所有项目

        switch (menu.getItemId())
        {
        case 1:  //点击  长按菜单的  详细
            Intent intent = new Intent(MainActivity.this, DetailedActivity.class);
            intent.putExtra("mainidIsnull", cursor.moveToFirst());// 判断点击的ID对应的mainId是不是存在,以便在DetailedActivity中是不是调用listview()
                                                                    // (如果mainid不存在,listview将产生错误)
            intent.putExtra("mainid", id);
            startActivity(intent);
            break;
        case 2:  //修改
            Intent intent1 = new Intent(MainActivity.this, AddActivity.class);
            intent1.putExtra("updataoradd", 2); // 传递过去数值用来swich判断是哪个启动的addActivity    增加和修改都是调用addActvity
            intent1.putExtra("_id", id);
            startActivityForResult(intent1, 1);

            break;
        case 3:  //删除
            // 删除一行数据
            db.delete("mainlist", "_id=?", new String[] { id + "" });

            //删除mainlist中的一行同时,也删除了它对应的 detailed里所有关联的数据,
            db.delete("detailed", "mainid=?", new String[] { id + "" });
            listviewShow();

            break;
        }

        return super.onContextItemSelected(menu);
    }

    private void listviewShow()
    {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.query(StrName.TEABLE_NAME_MAINLIST, null, null, null, null, null, null);
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.main_listveiw_show, cursor, new String[] {
                "textlist", "date" }, new int[] { R.id.main_listview_title, R.id.main_listview_date }, 0);
        ListView listView = (ListView) findViewById(R.id.main_listview);
        listView.setAdapter(adapter);
        db.close();
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO Auto-generated method stub
        String str_show = ""; // 定义字符串,用来显示在主页上的Listview里
        super.onActivityResult(requestCode, resultCode, data);

        switch (resultCode)
        // 判断 AddActivit是按 Button还是直接按 返回键返回的。
        {
        case RESULT_OK:

            listviewShow();
            break;
        case RESULT_CANCELED:
            listviewShow();
            break;
        }

    }
}

 

addActvity

 

 

package com.example.diyquote;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AddActivity extends Activity
{
    private EditText name_customer_EditText, name_supplier_EditText;
    private Button button;
    private String str_customer, str_supplier;
    private MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(this, MySQLiteOpenHelper.DB_NAME, null,
            MySQLiteOpenHelper.DB_VERSION);

    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main_add);

        // 获取EditText的控件
        name_customer_EditText = (EditText) findViewById(R.id.name_customer);
        name_supplier_EditText = (EditText) findViewById(R.id.name_supplier);
        str_customer = name_customer_EditText.getText().toString();
        str_supplier = name_supplier_EditText.getText().toString();
        // 获取EditText上输入的字符串

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                str_customer = name_customer_EditText.getText().toString();
                str_supplier = name_supplier_EditText.getText().toString();
                SQLiteDatabase db = dbHelper.getReadableDatabase();
                ContentValues values = new ContentValues();
                Intent intent = new Intent();
                if ("".equals(str_customer) || "".equals(str_supplier))  //客户和渠道信息都为必添项目
                {

                    Toast.makeText(AddActivity.this, "请输入客户信息和渠道信息", Toast.LENGTH_LONG).show();
                } else
                {
                    switch (getIntent().getIntExtra("updataoradd", 1))  //判断一下是 增加  还是 修改  哪个来启动的addActivity,
                    {
                    case 1: //增加

                        values.put("textlist", str_customer + "-----" + str_supplier);
                        values.put("date", StrName.getDate());
                        db.insert("mainlist", null, values);

                        values.clear();

                        setResult(RESULT_OK, intent);
                        finish();

                        break;
                    case 2:  //修改
                        values.put("textlist", str_customer + "-----" + str_supplier);

                        //getIntent().getIntExtra("_id", 0) 为 修改 传递过来的_id
                        db.update(StrName.TEABLE_NAME_MAINLIST, values, "_id=?", new String[]{getIntent().getIntExtra("_id", 0)+""});
                        values.clear();
                        setResult(RESULT_OK, intent);
                        finish();
                        break;
                    }

                }

            }

        });

    }

    public void onBackPressed()  //当用户直接 按 返回键 时,直接返回。不做任何保存修改
    {
        // TODO Auto-generated method stub
        super.onBackPressed();

        // 直接按 返回键 时 返回空值
        Intent intent = new Intent();
        setResult(RESULT_CANCELED, intent);
        finish();

    }
}

 

DetailedActivity

 

 

package com.example.diyquote;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class DetailedActivity extends Activity
{
    MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(this, MySQLiteOpenHelper.DB_NAME, null,
            MySQLiteOpenHelper.DB_VERSION);

    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_detailed);
        TextView detailed_add_TextView = (TextView) findViewById(R.id.detailed_add);
        ListView detailed_listview = (ListView) findViewById(R.id.detailed_listview);
        detailed_add_TextView.setOnClickListener(new OnClickListener()  //屏幕左上角的 + 号的 TextView 的点击事件
        {

            @Override
            public void onClick(View arg0)
            {

                LinearLayout layout_edit = (LinearLayout) findViewById(R.id.layout_edittext);
                EditTextData(layout_edit.getVisibility(), 0);  //layout_edit.getVisibility(),为判断这个layout是不是可见,

            }

        });

        detailed_listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener()  //ListView的长按菜单
        {

            @Override
            public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info)
            {
                menu.setHeaderTitle("菜单");
                menu.add(0, 1, 0, "修改");
                menu.add(0, 2, 0, "删除");
            }
        });

        if (getIntent().getBooleanExtra("mainidIsnull", false)) // 判断mainid是不是存在
        {

            listviewShow();
        }

    }

    @Override
    public boolean onContextItemSelected(MenuItem item)
    {
        // TODO Auto-generated method stub
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        int id = (int) info.id;
        switch (item.getItemId())
        {
        case 1:  //修改数据

            EditTextData(-1, id);  //id 点击了哪个数据,对应数据库里的_id 

            break;
        case 2:  //删除数据

            db.delete("detailed", "_id=?", new String[] { id + "" });// 这里为什么用StrName.DETAILED_NAME会出错误?????????????????????????????
            listviewShow();
            break;
        }
        return super.onContextItemSelected(item);
    }

    private void listviewShow()
    {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ListView listView = (ListView) findViewById(R.id.detailed_listview);
        int mainId = getIntent().getIntExtra("mainid", 0);

        Cursor cursor = db.query("detailed", null, "mainid=?", new String[] { mainId + "" }, null, null, null);
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.detailed_listview_show, cursor,
                new String[] { "peijian", "xinghao", "baojia", "jinjia", "shuliang", "lirun", "xiaoji" }, new int[] {
                        R.id.peijian, R.id.xinghao, R.id.baojia, R.id.jinjia, R.id.shuliang, R.id.lirun, R.id.xiaoji },
                0);

        listView.setAdapter(adapter);
        db.close();

    }

    boolean EditTextData(int viewIsSo, int id)  //定义了一个方法,用来处理很多EditText,参数viewIsSo:包含7个EditText的Layout是否可见   int id 参数 : 为长按菜单上对应的的id,
    {

        boolean flag = true;// 定义一个boolean的变量,用来函数返回,以便以后用?
        LinearLayout layout_edit = (LinearLayout) findViewById(R.id.layout_edittext);
        TextView detailed_add_TextView = (TextView) findViewById(R.id.detailed_add);

        EditText peijia_EditText = (EditText) findViewById(R.id.edit_peijian);
        EditText xinghao_EditText = (EditText) findViewById(R.id.edit_xinghao);
        EditText baojia_EditText = (EditText) findViewById(R.id.edit_baojia);
        EditText jinjia_EditText = (EditText) findViewById(R.id.edit_jinjia);
        EditText shuliang_EditText = (EditText) findViewById(R.id.edit_shuliang);
        EditText lirun_EditText = (EditText) findViewById(R.id.edit_lirun);
        EditText xiaoji_EditText = (EditText) findViewById(R.id.edit_xiaoji);

        SQLiteDatabase db = dbHelper.getReadableDatabase();
        ContentValues values = new ContentValues();

        switch (viewIsSo)
        {
        case View.VISIBLE: // 控件 可见时,按钮为 确定 时,执行这个。提取EditText里的内容到数据库

            layout_edit.setVisibility(View.GONE);// 使Layout edittext 控件可见

            // 插入数据
            if (!("".equals(peijia_EditText.getText().toString()))) // 配件的EditText里不为空,才能插入数据库。避免插入整个空行进数据库
            {

                values.put("peijian", peijia_EditText.getText().toString());
                values.put("xinghao", xinghao_EditText.getText().toString());
                values.put("baojia", baojia_EditText.getText().toString());
                values.put("jinjia", jinjia_EditText.getText().toString());
                values.put("shuliang", shuliang_EditText.getText().toString());
                values.put("lirun", lirun_EditText.getText().toString());
                values.put("xiaoji", xiaoji_EditText.getText().toString());
                values.put("mainid", getIntent().getIntExtra("mainid", 0));

                db.insert(StrName.TABLE_NAME_DETAILED, null, values);
                values.clear();
                listviewShow();
            }

            detailed_add_TextView.setText("[ + ]");
            flag = true;
            break;
        case View.GONE:// 控件不可见,按钮为 + 时,执行这个

            layout_edit.setVisibility(View.VISIBLE); // 使控件可见
            detailed_add_TextView.setText("确定");

            // 清空EdtiText控件里的内容
            peijia_EditText.setText("");
            xinghao_EditText.setText("");
            baojia_EditText.setText("");
            jinjia_EditText.setText("");
            shuliang_EditText.setText("");
            lirun_EditText.setText("");
            xiaoji_EditText.setText("");
            flag = false;
            break;

        case -1:  //修改数据。有个问题,不是之直接修改,而是原数据基础上增加,还需要手动删除对应的数据。
            Cursor cursor = db.query("detailed", null, "_id=?", new String[] { id + "" }, null, null, null);
            if (cursor.moveToFirst())
            {
                do
                {
                    {

                        peijia_EditText.setText(cursor.getString(cursor.getColumnIndex("peijian")));
                        xinghao_EditText.setText(cursor.getString(cursor.getColumnIndex("xinghao")));
                        xiaoji_EditText.setText(cursor.getString(cursor.getColumnIndex("xiaoji")));
                        baojia_EditText.setText(cursor.getString(cursor.getColumnIndex("baojia")));
                        jinjia_EditText.setText(cursor.getString(cursor.getColumnIndex("jinjia")));
                        shuliang_EditText.setText(cursor.getString(cursor.getColumnIndex("shuliang")));
                        lirun_EditText.setText(cursor.getString(cursor.getColumnIndex("lirun")));

                    }
                } while (cursor.moveToNext());
            }

            layout_edit.setVisibility(View.VISIBLE); // 使控件可见
            detailed_add_TextView.setText("确定");
            flag=true;
            break;
        }
        return flag;

    }

}

 

几个布局文件

activity_main.XML

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#3f51b5"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/add_textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="[ + ]"
            android:textColor="#FFFFFF"
            android:textSize="25sp"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="电脑报价单   "
            android:textColor="#FFFFFF"
            android:textSize="25sp"
            android:textStyle="bold" />
    </LinearLayout>

    <ListView
        android:id="@+id/main_listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="#0000ff"
        android:dividerHeight="2px"
        android:footerDividersEnabled="true" >
    </ListView>

</LinearLayout>

 

activity_detailed.xml

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/layout_detailed_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="#3f51b5"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/detailed_add"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:text="[ + ]"
            android:textColor="#FFFFFF"
            android:textSize="25sp"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="电脑报价单   "
            android:textColor="#FFFFFF"
            android:textSize="25sp"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_detailed_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/layout_detailed_title"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:gravity="center"
            android:text="配件"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="15"
            android:ellipsize="marquee"
            android:gravity="center"
            android:marqueeRepeatLimit="-1"
            android:singleLine="true"
            android:text="型号"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:gravity="center"
            android:text="报价"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:gravity="center"
            android:text="进价"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:gravity="center"
            android:text="数量"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:gravity="center"
            android:text="利润"
            android:textStyle="bold" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:gravity="center"
            android:text="小计"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_edittext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        android:visibility="gone" >

        <EditText
            android:id="@+id/edit_peijian"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:hint="配件"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_xinghao"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="15"
            android:hint="型号"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_baojia"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_jinjia"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_shuliang"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_lirun"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="10sp" />

        <EditText
            android:id="@+id/edit_xiaoji"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="10sp" />
    </LinearLayout>

    <ListView
        android:id="@+id/detailed_listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/layout_edittext"
        android:layout_below="@id/layout_detailed_textview"
        android:divider="#000000"
        android:footerDividersEnabled="true" >
    </ListView>

</RelativeLayout>
 

 

detailed_listview_show.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/peijian"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:gravity="left" />

    <TextView
        android:id="@+id/xinghao"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="15"
        android:gravity="left" />

    <TextView
        android:id="@+id/baojia"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left" />

    <TextView
        android:id="@+id/jinjia"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left" />

    <TextView
        android:id="@+id/shuliang"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left" />

    <TextView
        android:id="@+id/lirun"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left" />

    <TextView
        android:id="@+id/xiaoji"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="6"
        android:gravity="left" />

</LinearLayout>

main_listview_show.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/main_listview_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="7"
        android:gravity="left"
        android:paddingLeft="15dp" />

    <TextView
        android:id="@+id/main_listview_date"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:gravity="left"
        android:paddingRight="15dp" />

</LinearLayout>
时间: 2024-11-07 07:22:33

我的第一个程序的相关文章

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程--开偏介绍中我们已经介绍了GUN.GCC.G++等一些重要的概念,现在应该开始动手实践了! 开发工具的安装 环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686 一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装. [luowf@luoweifu ~]$ gcc -v gcc

日更第2期-2015-1-15-openFrameworks系列第一讲-手把手制作openFrameworks上的第一个程序!

恩,今天和朋友打球来着,于是今天的案例程序就做一个球吧!O(∩_∩)O哈哈~ 首先,没有看过上一篇教程的同学,还有还没有下载好VS和OpenFrameworks的同学,都去下一下. 传送地址:http://www.cnblogs.com/linongbo/p/4227552.html 那么,开始今天的日更啦! Hello OpenFrameworks! VS的安装部分我就不说了,不过我个人建议——默认是安装在C盘的,不过你要是手动改到别的盘上的话,C盘上 依然会有6G左右的内容.......Σ(

[Fluent NHibernate]第一个程序

目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴趣,想对它一探究竟,这里也将Fluent Nhibernate写成一个系列,记录自己的学习过程,关于这东东,也是第一次接触,也只能边摸索,边记录了.如果有描述错误的地方,还望多多包涵. 通过Nhibernate的学习,都觉得Nhibernate的使用映射文件的编写很麻烦,这里通过Fluent Nhi

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

在Win7(64位)使用VS2015运行《OpenGL编程指南》第八版第一章程序的方法

前言:笔者第一次用vs2015来实现<OpenGL编程指南>第八版第一个程序时确实花费了不少时间,按照网上教程,尝试了各种方法,最终花费了两个上午加一个下午的时间, 成功运行了程序,花了这么多时间,确实让人懊恼,现在把运行程序的步骤记录下来,以便查阅. 1.第一步,下载oglpg-8th-edith. 如果去书本上的官网下载,下载的是第九版的,而不是第八版的源码. 去其他网站下载,下载的这个包里面没有第一章的源码,可以网上黏贴其他人的代码,建议下第八版源码,下载网址:链接:http://pan

ExtJS 第一个程序

本篇介绍如何创建一个ExtJS应用程序.并通过创建目录.导入文件.编写代码及分析代码等步骤来解释第一个ExtJS程序. 目录 1. 创建程序 1.1 创建目录建议 1.2 实际目录 1.3 index.html 1.4 运行图 2. 代码分析 2.1 Ext.onReady() 2.2 Ext.create() 1. 创建程序 1.1 创建目录建议 根据官方建议,创建一个ExtJS应用程序的目录推荐如下: - appname | - app | - namespace | - Class1.js

1.2 第一个程序

按照一般的学习惯例,第一个程序自然就是"Hello World". 运行结果如上图.代码: 在主函数中只需4句话即可创建一个新的窗口,并在其中显示文字. ? ? 第1~2行:包含头文件. 在Qt中,每一个类都有一个与该类同名的头文件. 例如主函数中的QApplication类,它的头文件就是<QApplication>,QLabel类的头文件是<QLabel>. 第6行:创建一个QApplication对象. 用到的构造函数:QApplication ( int

JAVA的第一个程序

关于下载安装环境变量的配置网上的教程已经很多了 . 下面附上第一个HelloWorld的代码 /** 这是我的第一个java程序 */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World !"); } } 没有集成开发环境下 , 你将程序写入记事本 , 并将文件的后缀改为.java 这是java源程序的标准程序 . 在完成之后我们就开始编译了

Duilib学习二 第一个程序 Hello World

Duilib学习二  第一个程序 Hello World #pragma once #include <UIlib.h> using namespace DuiLib; #ifdef _DEBUG # ifdef _UNICODE # pragma comment(lib, "DuiLib_ud.lib") # else # pragma comment(lib, "DuiLib_d.lib") # endif #else # ifdef _UNICOD