Android 在listview中选择不同的行
我有一个新闻应用程序,可以从web下载数据并在listview中显示,但我如何才能使第一行不同,更高,不同的布局和内容 这是主要的活动来源Android 在listview中选择不同的行,android,listview,row,Android,Listview,Row,我有一个新闻应用程序,可以从web下载数据并在listview中显示,但我如何才能使第一行不同,更高,不同的布局和内容 这是主要的活动来源 public class Home extends Activity { // All static variables static final String URL = "http://dmb.site50.net/application.php?app_access_key=c4ca4238a0b923820dcc509a6f75849
public class Home extends Activity {
// All static variables
static final String URL = "http://dmb.site50.net/application.php?app_access_key=c4ca4238a0b923820dcc509a6f75849b";
// XML node keys
static final String KEY_SONG = "song"; // parent node
static final String KEY_ID = "id";
static final String KEY_TITLE = "title";
static final String KEY_ARTIST = "artist";
static final String KEY_DURATION = "duration";
static final String KEY_THUMB_URL = "thumb_url";
public static final String TAG_NEWS = "news";
public static final String TAG_ID = "id";
public static final String TAG_TITLE = "title";
public static final String TAG_STORY = "story";
public static final String TAG_SH_STORY = "shorten";
public static final String TAG_DATETIME = "datetime";
public static final String TAG_AUTHOR = "author";
public static final String TAG_IMG = "img";
ListView list;
LazyAdapter adapter;
Button mBtnNaslovnica;
private ViewSwitcher viewSwitcher;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
mBtnNaslovnica = (Button) findViewById(R.id.mBtnNaslovnica);
mBtnNaslovnica.setSelected(true);
TextView txtView=(TextView) findViewById(R.id.scroller);
txtView.setSelected(true);
ImageButton mBtnRefresh = (ImageButton) findViewById(R.id.btnRefresh);
mBtnRefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new LoadingTask().execute(URL);
}
});
ArrayList<HashMap<String, String>> homeList = new ArrayList<HashMap<String, String>>();
JSONObject jsonobj;
try {
jsonobj = new JSONObject(getIntent().getStringExtra("json"));
JSONArray news = jsonobj.getJSONArray(TAG_NEWS);
for(int i = 0; i < news.length(); i++){
JSONObject c = news.getJSONObject(i);
// Storing each json item in variable
String id = c.getString(TAG_ID);
String title = c.getString(TAG_TITLE);
String story = c.getString(TAG_STORY);
String shorten = c.getString(TAG_SH_STORY);
String author = c.getString(TAG_AUTHOR);
String datetime = c.getString(TAG_DATETIME);
String img = c.getString(TAG_IMG);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_ID, id);
map.put(TAG_TITLE, title);
map.put(TAG_STORY, story);
map.put(TAG_IMG, img);
map.put(TAG_DATETIME, datetime);
map.put(TAG_AUTHOR, author);
// adding HashList to ArrayList
homeList.add(map);}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list=(ListView)findViewById(R.id.list);
// Getting adapter by passing xml data ArrayList
adapter=new LazyAdapter(this, homeList);
list.setAdapter(adapter);
// Click event for single list row
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String cur_title = ((TextView) view.findViewById(R.id.title)).getText().toString();
String cur_story = ((TextView) view.findViewById(R.id.einfo2)).getText().toString();
String cur_author = ((TextView) view.findViewById(R.id.einfo1)).getText().toString();
String cur_datetime = ((TextView) view.findViewById(R.id.einfo)).getText().toString();
ImageView cur_img = (ImageView) view.findViewById(R.id.list_image);
String cur_img_url = (String) cur_img.getTag();
Intent i = new Intent("com.example.androidhive.CURENTNEWS");
i.putExtra("CUR_TITLE", cur_title);
i.putExtra("CUR_STORY", cur_story);
i.putExtra("CUR_AUTHOR", cur_author);
i.putExtra("CUR_DATETIME", cur_datetime);
i.putExtra("CUR_IMG_URL", cur_img_url);
startActivity(i);
}
});
}
public void loadPage(){
}
public void startNewActivity(){
}
public class LoadingTask extends AsyncTask<String, Object, Object>{
XMLParser parser = new XMLParser();
JSONParser jParser = new JSONParser();
@Override
protected Object doInBackground(String... params) {
// TODO Auto-generated method stub
String URL = params[0];
JSONObject json = jParser.getJSONFromUrl(URL);
//String xml = parser.getXmlFromUrl(URL); // getting XML from URL
// getting DOM element
return json;
}
protected void onPostExecute(Object result){
Intent startApp = new Intent("com.example.androidhive.HOME");
startApp.putExtra("json", result.toString());
startActivity(startApp);
}
}
}
公共类主页扩展活动{
//所有静态变量
静态最终字符串URL=”http://dmb.site50.net/application.php?app_access_key=c4ca4238a0b923820dcc509a6f75849b";
//XML节点密钥
静态最终字符串键\u SONG=“SONG”//父节点
静态最终字符串键\u ID=“ID”;
静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u ARTIST=“ARTIST”;
静态最终字符串键\u DURATION=“DURATION”;
静态最终字符串键\u THUMB\u URL=“THUMB\u URL”;
公共静态最终字符串标记_NEWS=“NEWS”;
公共静态最终字符串标记\u ID=“ID”;
公共静态最终字符串标记\u TITLE=“TITLE”;
公共静态最终字符串标记_STORY=“STORY”;
公共静态最终字符串标记_SH_STORY=“shorten”;
公共静态最终字符串标记_DATETIME=“DATETIME”;
公共静态最终字符串标记\u AUTHOR=“AUTHOR”;
公共静态最终字符串标记\u IMG=“IMG”;
列表视图列表;
懒散适配器;
按钮mBtnNaslovnica;
私人取景器取景器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setContentView(R.layout.main);
mBtnNaslovnica=(按钮)findviewbyd(R.id.mBtnNaslovnica);
mBtnNaslovnica.setSelected(真);
TextView txtView=(TextView)findViewById(R.id.scroller);
txtView.setSelected(true);
ImageButton mBtnRefresh=(ImageButton)findViewById(R.id.btnRefresh);
mBtnRefresh.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
新建LoadingTask().execute(URL);
}
});
ArrayList homeList=新的ArrayList();
JSONObject jsonobj;
试一试{
jsonobj=新的JSONObject(getIntent().getStringExtra(“json”);
JSONArray news=jsonobj.getJSONArray(TAG_news);
for(int i=0;ivalue
地图放置(标签标识,标识);
地图放置(标签标题、标题);
地图放置(TAG_故事,故事);
地图放置(标签、IMG、IMG);
map.put(TAG_DATETIME,DATETIME);
map.put(TAG_AUTHOR,AUTHOR);
//将哈希列表添加到ArrayList
homeList.add(map);}
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
list=(ListView)findViewById(R.id.list);
//通过传递xml数据ArrayList获取适配器
adapter=新的LazyAdapter(这是homeList);
list.setAdapter(适配器);
//单击单个列表行的事件
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串cur_title=((TextView)view.findviewbyd(R.id.title)).getText().toString();
字符串cur_story=((TextView)view.findviewbyd(R.id.einfo2)).getText().toString();
字符串cur_author=((TextView)view.findviewbyd(R.id.einfo1)).getText().toString();
字符串cur_datetime=((TextView)view.findViewById(R.id.einfo)).getText().toString();
ImageView cur_img=(ImageView)view.findViewById(R.id.list_image);
字符串cur_img_url=(String)cur_img.getTag();
意图i=新意图(“com.example.androidhive.CURENTNEWS”);
i、 putExtra(“CUR_TITLE”,CUR_TITLE);
i、 putExtra(“CUR_故事”,CUR_故事);
i、 putExtra(“CUR_AUTHOR”,CUR_AUTHOR);
i、 putExtra(“CUR_DATETIME”,CUR_DATETIME);
i、 putExtra(“CUR_IMG_URL”,CUR_IMG_URL);
星触觉(i);
}
});
}
公共void加载页(){
}
公共无效startNewActivity(){
}
公共类LoadingTask扩展了AsyncTask{
XMLParser=新的XMLParser();
JSONParser jParser=新的JSONParser();
@凌驾
受保护对象doInBackground(字符串…参数){
//TODO自动生成的方法存根
字符串URL=params[0];
JSONObject json=jParser.getJSONFromUrl(URL);
//字符串xml=parser.getXmlFromUrl(URL);//从URL获取xml
//获取DOM元素
返回json;
}
受保护的void onPostExecute(对象结果){
Intent startApp=newintent(“com.example.androidhive.HOME”);
startApp.putE