Android入门练习——对话框与列表的使用

效果描述:

  • 类似电话簿,点击某一联系人,在最上层显示其电话号码
  • 长按某一联系人,上方显示电话号码,同时弹出呼叫对话框

效果图:

知识点:

  • listview组件的使用
  • 构建两个数组,一个数组用于存放姓名,另一个数组对应存放电话号码。通过position参数来获取下标。
  • 设置TextView的内容,使用setText(String)方法。
  • 上下文菜单ContextMenuDemo的使用

代码:
Layout中:

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

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:textSize="15dp"/>
   <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/hello_world" 
        />

</LinearLayout>

Mainactivity中:

public class MainActivity extends Activity {
	private String[] data={"关羽","张飞","刘备","曹操","诸葛亮","司马懿","刘邦","小乔","貂蝉"};
	private String[] pho={"13659850262","13626656662","1522650262","15555250262","13650000062","1365900002","1322999982","13659850262","13659850262"};
	private ListView lv;
	private TextView mytv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        lv=(ListView)findViewById(R.id.lv);
        mytv1=(TextView) findViewById(R.id.tv_result);
        this.registerForContextMenu(lv);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);
		ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, data);//单选按钮
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        lv.setAdapter(adapter);//建立listview和数据之间的关联
        
        lv.setOnItemClickListener(new OnItemClickListener() {
        	
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
	
				mytv1.setText(data[position]+"的电话是:"+pho[position]}
		});
        
        lv.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				mytv1.setText(data[position]+"的电话是:"+pho[position]);
				return false;
			}
		});
              
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
    		ContextMenuInfo menuInfo) {
    	menu.add(1, 1, 1, "呼叫!");

    	super.onCreateContextMenu(menu, v, menuInfo);
    }}

扩展:
可以和之前的ArrayAdapter 结合使用(详见:Android入门练习——ArrayAdapter绑定ListView),增加图标等等。

效果图:

猜你喜欢

转载自blog.csdn.net/qq_43145926/article/details/90019457