android常见三个适配器

来源:互联网 发布:js 添加dom 动画 编辑:程序博客网 时间:2024/06/05 03:01

首先给出整体目录结构



设计整个程序是通过主界面的三个按钮跳转到三个界面,分别是用BaseAdapte,SimpleAdapter,ArrayAdatper显示ListView

主界面如下





点击任何一个按钮则跳转相应界面,三个界面差不多,只是id设置不同,其中一个界面如图:




现在给出全部布局文件代码:

activity_main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >        <Button         android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="basedapter"        />    <Button         android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="simpleAdatpter"        />    <Button         android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="ArrayAdapter"        /></LinearLayout>

activity_array

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ListView         android:id="@+id/array"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></LinearLayout>

activity_base

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ListView         android:id="@+id/base"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></LinearLayout>
activity_simple
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ListView         android:id="@+id/simple"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></LinearLayout>

然后Lsitview里面的布局是listview.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"     >    <TextView     android:id="@+id/listText"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:hint="我是textview"        /></RelativeLayout>

  然后是几个主要界面代码:

主界面:

package com.example.myadapter;import android.app.Activity;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TabHost;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.activity_main);Button button1 = (Button) findViewById(R.id.button1);Button button2 = (Button) findViewById(R.id.button2);Button button3 = (Button) findViewById(R.id.button3);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,BaseActivity.class);startActivity(intent);}});button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,SimpleActivity.class);startActivity(intent);}});button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,ArrayActivity.class);startActivity(intent);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}
BaseActivity:


package com.example.myadapter;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.TextureView;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;public class BaseActivity extends Activity {private String []nameStrings={"第一次","第二次","第三次"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_base);ListView listView=(ListView)findViewById(R.id.base);myBaseAdapter myBaseAdapter=new myBaseAdapter();listView.setAdapter(myBaseAdapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.base, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}class myBaseAdapter extends BaseAdapter{@Overridepublic int getCount() {// TODO Auto-generated method stubreturn nameStrings.length;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn nameStrings[arg0];}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {// TODO Auto-generated method stubView view=View.inflate(BaseActivity.this, R.layout.listview, null);
//listview是ListVIew的具体布局文件的xml文件
return view
}
SimpleActivity:

package com.example.myadapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.ListView;import android.widget.SimpleAdapter;public class SimpleActivity extends Activity {private String []nameStrings={"第一次","第二次","第三次"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_simple); List<Map<String, Object>> listems = new ArrayList<Map<String, Object>>();          for (int i = 0; i < nameStrings.length; i++) {              Map<String, Object> listem = new HashMap<String, Object>();              listem.put("head", nameStrings[i]);                         listems.add(listem);          }                  SimpleAdapter simplead = new SimpleAdapter(this, listems,                 R.layout.listview, new String[] {"head"},                  new int[] {R.id.listText});            //第一个参数是上下文,第二个是List<map<>>参数,第三个是ListView具体布局ID        //第4个是List中的map的key值,第5个是List中的map的key值对应显示的TextView或者其他控件        ListView listView=(ListView)findViewById(R.id.simple);          listView.setAdapter(simplead);                }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.simple, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}
ArrayActivity:

package com.example.myadapter;import java.util.List;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.ArrayAdapter;import android.widget.ListView;public class ArrayActivity extends Activity {private String []nameStrings={"第一次","第二次","第三次"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_array);ListView listView=(ListView)findViewById(R.id.array);ArrayAdapter<String> adapter=new ArrayAdapter<String>(ArrayActivity.this, android.R.layout.simple_expandable_list_item_1,nameStrings);listView.setAdapter(adapter);//android.R.layout.simple_expandable_list_item_1是系统已经存在的}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.array, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}class myArrayAdapter extends ArrayAdapter<String>{public myArrayAdapter(Context context, int resource,int textViewResourceId, List<String> objects) {super(context,resource, textViewResourceId, objects);// TODO Auto-generated constructor stub}}}

清单文件自动注册各自的activity;






原创粉丝点击