??xml version="1.0" encoding="utf-8" standalone="yes"?> 在drawable目录下创Z个repeat_bg.xml: src是引用图片的名称 然后在布局的xml文g中可以这样引? 前言 本章内容是android.widget.CompoundButtonQ翻译来自d|dQ再ơ感谢d|d Q期待你一起参与Android API 的中文翻译,联系我over140@gmail.com?span class="Apple-converted-space"> 转蝲 正文 一、结?/p>
public abstract class CompoundButton extends Button implements Checkable 二、概q?/p>
一个带有选中/未选中状态的按钮。当按钮按下或点中时自动改变状态?/span> 三、公共方?/p>
public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event) 在子视图的构建时分派一个辅助事件。(译者注Q通过源码可以看出Q视图构建时讄光中状态。)(j) 参数 event 事g q回?/span> 如果事g全部完成q回True?/span> public boolean isChecked () Q译者注Q是否选中Q?/span> public void onRestoreInstanceState (Parcelable state) 允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态?/span> 参数 state q回以前调用onSaveInstanceState()保存下来的状态?/span> public Parcelable onSaveInstanceState () 允许视图生成一个代表内部的状态,以后可用于创Z个与之相同的新的实例。这U状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏q上的位|,因ؓ(f)q会(x)在视囄层面上重新计放|一个新的实例?/span> 你可以存储到q里的一些例子:(x)一个文本框中当前光标的位置Q但通常不是文字本nQ文字通常保存在内Ҏ(gu)供?/span>(content provider)或其他持久的储存中)(j)Q一个列表视图中的当前选中V?/span> q回?/span> q回一个包含视囑ֽ前状态的Parcelable对象Q或没有什么状态保存时q回null。默认实现返?/span>null?/span> public boolean performClick () 如果视图定义?/span>OnClickListener监听器,调用此方法来执行?/span> q回?/span> 定义?jin)?/span>OnClickListener被调用返?/span>TrueQ否则返?/span>False public void setButtonDrawable (Drawable d) l按钮背景设|一个可l制对象Q如Q图像)(j) 参数 d 用作背景的可l制对象Q如Q图像)(j) public void setButtonDrawable (int resid) 通过资源Idl按钮背景设|一个图?/span> 参数 resid 作ؓ(f)背景囑փ的资?/span>id public void setChecked (boolean checked) 改变按钮的选中状?/span> 参数 checked true选中Q?/span>false非选中 public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener) 注册一个在按钮状态发生改变时执行的回调函?/span> 参数 listener 当选中状态改变时调用的函?/span> public void toggle () 改变选中状态ؓ(f)当前状态的逆状?/span> 四、受保护Ҏ(gu) protected void drawableStateChanged () 在视囄态的变化影响到所昄可绘制的状态时调用q个Ҏ(gu)?/span> 保在重载时中调用父cL?/span> protected int[] onCreateDrawableState (int extraSpace) 为当前视囄成新的可l图区状态。这个方式当~存的图像绘囑状态确定失效时通过视图pȝ调用。你可以使用getDrawableState()Ҏ(gu)重新取得当前的状态?/span> 参数 extraSpace 如果为非Ӟq是你应该返回的数组在你可以存放你的状态的额外条目的数量?/span> q回?/span> q回一个记录着视图中当前绘囑状态的数组 protected void onDraw (Canvas canvas) 实现你自ql制?/span> 参数 canvas 在画布上l制背景 protected boolean verifyDrawable (Drawable who) 如果你的视图子类昄他自q可视化对象,他将要重写此Ҏ(gu)q且Z(jin)昄可绘制返?/span>true。此操作允许q行l制时有动画效果?/span> 认当重写从Ҏ(gu)Ӟ需调用父类相应Ҏ(gu)?/span> 参数 who 需判断的可l制对象Q?/span>DrawableQ。如果是你要昄的对象,q回TrueQ否则返回调用父cȝl果?/span> q回?/span>
]]>
]]>
]]>
1
<LinearLayout android:layout_width=
"fill_parent"
2
android:layout_height=
"fill_parent"
3
android:background=
"@drawable/repeat_bg"
>
4
</LinearLayout>
]]>
android.view.View
android.widget.TextView
android.widget.Button
android.widget.CompoundButton
]]>android library projects cannot be launched
]]>
activity_main.xml
<LinearLayout xmlns:android=" xmlns:tools=" xmlns:android1=" android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android1:id="@+id/listView1"
android1:layout_width="match_parent"
android1:layout_height="wrap_content"
android1:layout_weight="1" >
</ListView>
</LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical"
android:id="@+id/waibubuju"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bianhao"
android:text="~号"
android:textColor="#88ff0000"
android:gravity="center"
android:textSize="18sp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/neibubuju"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:id="@+id/username"
/>
MainActivity.java
package com.hyl.listViewpack;
import java.util.ArrayList;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
private ListView listView1;
ArrayList<ArrayList<String>> arr ;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView1=(ListView) findViewById(R.id.listView1);
arr=new ArrayList<ArrayList<String>>();
for(int i=0;i<=50;i++){
ArrayList<String> a=new ArrayList<String>();
a.add("~号Q?+i);
a.add("姓名Q?+i);
a.add("?sh)话Q?+i);
arr.add(a);
}
listView1.setAdapter(new BaseAdapter() {
public View getView(int position, View convertView, ViewGroup parent) {
//父窗?挂蝲
View view=View.inflate(MainActivity.this, R.layout.list_item, null);
Log.e(TAG, "试创徏对象位置Q?+position);
ArrayList<String> a=arr.get(position);
TextView tvbianhao=(TextView) view.findViewById(R.id.bianhao);
tvbianhao.setText( a.get(0));
TextView tvUserName=(TextView) view.findViewById(R.id.username);
tvUserName.setText( a.get(1));
TextView tvTel=(TextView) view.findViewById(R.id.tel);
tvTel.setText( a.get(2));
return view;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
return arr.size();
}
});
}
@Override
public 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;
}
}
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="?sh)?
android:id="@+id/tel"
/>
</LinearLayout>
</LinearLayout>
ArrayAdapter方式
//上下文对?nbsp; 布局列表对象 昄的TextView的ID 数组对象
listView1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.bianhao, new String[]{"选项一","选项?,"选项?,"选项?,"选项?}));
SimpleAdapter方式
listView1=(ListView) findViewById(R.id.listView1);
ArrayList<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
Map<String, Object> map1=new HashMap<String, Object>();
map1.put("icon", R.drawable.ic1);
map1.put("name", "功能一");
list.add(map1);
Map<String, Object> map2=new HashMap<String, Object>();
map2.put("icon", R.drawable.ic2);
map2.put("name", "功能?);
list.add(map2);
Map<String, Object> map3=new HashMap<String, Object>();
map3.put("icon", R.drawable.ic3);
map3.put("name", "功能?);
list.add(map3);
Map<String, Object> map4=new HashMap<String, Object>();
map4.put("icon", R.drawable.ic1);
map4.put("name", "功能?);
list.add(map4);
Map<String, Object> map5=new HashMap<String, Object>();
map4.put("icon", R.drawable.ic5);
map4.put("name", "功能?);
list.add(map5);
listView1.setAdapter(new SimpleAdapter(this, list, R.layout.list_item, new String[]{"icon","name"},new int[]{R.id.tubiao,R.id.gongneng} ));
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_list_activy);
lv_show_view = (ListView) findViewById(R.id.lv_show_view);
AsyncHttpClient client=new AsyncHttpClient();
String url = " + "试Ҏ(gu)";
client.get(url, new AsyncHttpResponseHandler() {
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
List<Video> list=new ArrayList<Video>();
try {
Toast.makeText(ShowListActivy.this,statusCode+"", 1).show();
String json = new String(responseBody);
JSONArray array = new JSONArray(json);
for(int i=0 ; i < array.length() ; i++){
JSONObject item= array.getJSONObject(i);
String id = item.getString("id");
String title = item.getString("title");
String timelength = item.getString("time");
Log.e("jsonget", id+title+timelength);
list.add(new Video( id, title, Integer.parseInt(timelength)));
}
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
for (Video v : list) {
Map<String, Object> it = new HashMap<String, Object>();
it.put("id", v.getId());
it.put("title", v.getTitle());
it.put("timelength", v.getTime());
data.add(it);
}
SimpleAdapter adapter = new SimpleAdapter(ShowListActivy.this, data,R.layout.item, new String[] { "title", "timelength" },new int[] { R.id.title, R.id.timelength });
lv_show_view.setAdapter(adapter);
} catch ( Exception e) {
Log.e("MainActivity", e.toString());
}
}
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
Toast.makeText(ShowListActivy.this,"shibai", 1).show();
}
});
昄Zq来的jsonl果Q?br />
本文章只是自己学?fn)笔讎ͼ大家要慎重借鉴
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" package="com.hyl.phone" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/maolv" android:label="@string/app_name">
<activity android:name=".phoneActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!-- 开发的应用适应的版?代表Android2.2 -->
<uses-sdk android:minSdkVersion="8" />
<!-- q里指定拨打?sh)话的权?-->
<uses-permission android:name="android.permission.CALL_PHONE" />
</manifest>
hyl.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mobellabel">误入手机号?lt;/string>
<string name="button">拨打此号?lt;/string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/mobellabel"
android:id="@+id/TextView01"
/>
<EditText android:id="@+id/EditText01"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<Button android:text="@string/button" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
phoneActivity.java
package com.hyl.phone;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class phoneActivity extends Activity {
/** Called when the activity is first created. */
private Button button;
private EditText editText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button= (Button)this.findViewById(R.id.Button01);
editText=(EditText) this.findViewById(R.id.EditText01);
button.setOnClickListener(new ButtonListener());
}
private final class ButtonListener implements View.OnClickListener{
public void onClick(View v) {
String phonenum=editText.getText().toString();
//android.intent.action.CALL=Intent.ACTION_CALL
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phonenum));
startActivity(intent);
}
}
}