新闻资讯android版

又有一段时间没有更新自己的博客了,前段时间较忙,也没能抽时间来写博客。


这几天公司头让我熟悉一下环境,准备下周给公司做一个自己的新闻资讯,那么首先就要找一个类似的东西来研究一下,看搜狐新闻不错,就按照那有的模板开始做!


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数据,这里接口还需等待同事完成了才能实现。

其中滑动屏幕事件是从某博客直接采用的,还没有完全嵌入到我的程序里面。

由于项目还没有完成,只是初步搭建,没全部实现。后续~~

你可能感兴趣的:(android,ListView,String,layout,search,资讯)