又有一段时间没有更新自己的博客了,前段时间较忙,也没能抽时间来写博客。
这几天公司头让我熟悉一下环境,准备下周给公司做一个自己的新闻资讯,那么首先就要找一个类似的东西来研究一下,看搜狐新闻不错,就按照那有的模板开始做!
1.首先要解决排版,分为四部分的新闻内容,下面是属于此部分的新闻标题列表,上面的新闻分类使用四个Button,下面新闻标题的列表需要使用SrollView,可滚动的视图控件,里面的东西需要是用ListView列表,这样基本的布局已经确定下来,上面的图片是随便找的几个,到时候可以修改一下。
如有需要对ListView想进一步了解的,推荐博客:http://blog.csdn.net/xys289187120/article/details/6636139
其中主要的一个类:
package com.ifensi.news.information; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.json.JSONArray; import org.json.JSONObject; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.graphics.PixelFormat; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; public class NewsInformation extends ListActivity { /** Called when the activity is first created. */ ListView mListView = null; ArrayList<Map<String, Object>> mData = new ArrayList<Map<String, Object>>();; private View mainLayout; private LayoutInflater inflater; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 窗口去掉标题 requestWindowFeature(Window.FEATURE_NO_TITLE); // 窗口设置为全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 设置窗口为半透明 getWindow().setFormat(PixelFormat.TRANSLUCENT); inflater = (LayoutInflater) this.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); mainLayout = inflater.inflate(R.layout.navigation_container, null); ButtomButtonOnClickListener buttomButtonOnClickListener = new ButtomButtonOnClickListener(); mainLayout.findViewById(R.id.btn_guide).setOnClickListener(buttomButtonOnClickListener); mainLayout.findViewById(R.id.btn_model).setOnClickListener(buttomButtonOnClickListener); mainLayout.findViewById(R.id.btn_news).setOnClickListener(buttomButtonOnClickListener); mainLayout.findViewById(R.id.btn_search).setOnClickListener(buttomButtonOnClickListener); mainLayout.findViewById(R.id.btn_more).setOnClickListener(buttomButtonOnClickListener); // 获取json数据,等待接口实现 String[] mListTitle = { "姓名", "性别", "年龄", "居住地", "邮箱", "姓名", "性别", "年龄", "居住地", "邮箱" }; String[] mListStr = { "颜冬DIDO", "男", "25", "北京", "[email protected]", "颜冬DIDO", "男", "25", "北京", "[email protected]" }; this.getListViewContext(mListTitle, mListStr); } public String getJson() { String jsonString = ""; try { JSONObject result = new JSONObject(jsonString); int num = result.length(); JSONArray nameList = result.getJSONArray("name"); int length = nameList.length(); String aa = ""; for (int i = 0; i < length; i++) { JSONObject obj = nameList.getJSONObject(i); aa = aa + obj.getString("name") + "|"; } Iterator<?> it = result.keys(); String aa2 = ""; String bb2 = null; while (it.hasNext()) { bb2 = (String) it.next().toString(); aa2 = aa2 + result.getString(bb2); } return aa; } catch (Exception e) { } return null; } public ListView getListViewContext(String mListTitle[], String mListStr[]) { mListView = getListView(); int lengh = mListTitle.length; for (int i = 0; i < lengh; i++) { Map<String, Object> item = new HashMap<String, Object>(); item.put("title", mListTitle[i]); item.put("text", mListStr[i]); mData.add(item); } SimpleAdapter adapter = new SimpleAdapter(this, mData, android.R.layout.simple_list_item_2, new String[] { "title", "text" }, new int[] { android.R.id.text1, android.R.id.text2 }); setListAdapter(adapter); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { Intent intent = new Intent(); intent.setClass(NewsInformation.this, NewsContext.class); Bundle bundle = new Bundle(); bundle.putString("id", "aaaa"); intent.putExtras(bundle); startActivity(intent); // Toast.makeText(TitleList.this,"您选择了标题:" + // mListTitle[position] + "内容:"+mListStr[position], // Toast.LENGTH_LONG).show(); } }); return mListView; } private class ButtomButtonOnClickListener implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_guide: // startGoogleMap(); break; case R.id.btn_model: break; case R.id.btn_news: break; case R.id.btn_search: break; case R.id.btn_more: break; } } } public void setLastBottomButtomVisibility(int v) { mainLayout.findViewById(R.id.btn_more).setVisibility(v); } public void setContentView(int layoutResID) { View v = this.inflater.inflate(layoutResID, null); ViewGroup container = (ViewGroup) mainLayout.findViewById(R.id.container); container.addView(v); super.setContentView(mainLayout); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="top"> <LinearLayout android:id="@+id/buttom_buttons" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_guide" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" android:background="@drawable/button_guide" /> <Button android:id="@+id/btn_news" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" android:background="@drawable/button_news" /> <Button android:id="@+id/btn_model" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" android:background="@drawable/button_model" /> <Button android:id="@+id/btn_search" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" android:background="@drawable/button_search" /> <Button android:id="@+id/btn_more" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" android:background="@drawable/button_search" android:visibility="gone" /> </LinearLayout> <FrameLayout android:id="@+id/container" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ScrollView android:id="@+id/scrollView" android:layout_below="@+id/title_bar" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ScrollView> </FrameLayout> </LinearLayout>
2.剩下的就要对这些加一些基本的事件了:(1)点击进入查看新闻;(2)滑动屏幕显示不同新闻列表内容。
上面是比较基本的功能设计,这里的新闻列表是通过请求接口获得的JSON数据,这里接口还需等待同事完成了才能实现。
其中滑动屏幕事件是从某博客直接采用的,还没有完全嵌入到我的程序里面。
由于项目还没有完成,只是初步搭建,没全部实现。后续~~