Android新闻软件编写

当我开始学安卓开发时,我发现网上最多的教程就是关于Android上的新闻客户端开发的(而且课时特别长),我本人觉得完全是那些上传网课的人想拉时长牟利,在写完listview之后,因为我们的《软设》项目需要,我也来做做“新闻页”,我只写显示过程(不涉及爬虫),只是为了记录下开发过程供初学者及日后自己回顾。
首先,我在values/string目录加上如下条目,用作显示(内容无关):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<string name="title">是上帝除四害是的次数不多是彻底那就是地产表示比不对是不死都今?</string>
<string name="text">我是测手术储备货币结算你说的内存金士顿内存就剧场那就看到手残你从从今年刷卡才能加内存显卡才能收到你今年的你朝鲜才能常出现从侠客行朝鲜</string>
<string-array name="text_arr">
<item>bids比貂蝉死不打算比赛的buds不v电话苏帮你吧报错还加班猝死地产表示出版社u白崇禧必须</item>
<item>但是不撒手撒就行字数限制到6个字,多的用省略号,是设置什么属学校决定停止晚自习,我和同学一起回荚冬
我是在那次孝雅之星的事迹报告会上认识她的。当轮到她上场的时候,主持人这样说道:“她是一个外表刚强,内心柔弱的人。”话音刚落,她班上的同学一阵哄堂大笑。
我用疑惑的眼神看了看身旁的同学,她告诉我,在她们班上谁都知道她是一个标准的女汉子。她的话勾起了我的好奇心,使我有了想听听她的故事的欲望。
她步履坚定的走上了演讲台,先是向我们深深地鞠了一躬,便开始娓娓道来她的事迹。
她的父母都在外打拼,忙于事业,所以很少有空去照顾她,所以家中的一切只能由她一人包办。后来,她又有了一个妹妹,致使她身上的担子又加重了许多,但她依然十分
坚强的承担这一切。她说妹妹的到来对于她来说像一个天使一样美好,而并不是觉得她是一个负担。当我们回到家中扑在父母怀里撒娇时,她在床头哄着妹妹入睡;当我作文网
http://wwW.zuoWen8.Com/们安稳的进入梦乡时,她却还在奋笔疾书。夜的黑暗与漫长,只有她才知道;思念的感受有多浓稠,只有她才知道;内心的压抑有多难受,只有她才知
道。
当她说到妹妹因调皮将很烫的饭菜洒到她的手臂上,她还得继续给妹妹喂饭时,当她提及妹妹做坏事后她忍气吞声的到别人家中道歉时,她哽咽了,将头扭到一边独自抹眼泪。
我们沉默了,低头不语。忧伤的气息迅速在全场蔓延,每个人的心都在和她共鸣着,有好几次,她正准备开口时,却都卡在了喉咙,全场为她响起了雷鸣般经久不息的掌声。
</item>
<item>看到他我想到了爸爸,幸好他今天不上班,不用冒那么大的雪,假如哪个人是我爸爸,我多么希看有一个好心人上前伸出一只手,帮他一把。假如那是你,</item>
<item>我停了车子,想往帮助他,可我也象那些来来往往的行人一样,脚步并没有动,的确有很多人同情他,同情也的确对他没用,他还是站不起来,一遍一遍看他起来又摔倒,只好转过头,
不看他,疼痛无奈,一个中年男子的窘态在众人眼前暴露无遗,这时的他没有一点男子汉的心胸。</item>
<item>走到一个小岔路口时,我看到路的另一边一个中年男子坐在地上,他穿着青色衣服,双手扶地,似乎挣扎着坐起来,一次又一次尝试着。旁边躺着他的尽看的大梁自行车,等待着主人扶
起它,在这路上最难过的就是他们了吧!也只有他们可以相互安慰。</item>
<item>春天,春姑娘带来了蒙蒙细雨和柔和的春风,并把它们化作一只大画笔,把绿色涂在草坪上。这时,无数只小燕子从远方飞来,在草坪上飞来飞去。</item>
<item>夏天,草坪旁的花坛里,月季花欣然怒放,引来了勤劳的小蜜蜂和翩翩起舞的蝴蝶,热闹极了。</item>
<item>冬天,雪花落到草坪上,给草坪盖上了一层厚厚的棉被,来年,小草更加茁壮成长。</item>
<item>草坪就像一个氧气袋,它通过光合作用,净化空气,美化环境。我们要爱护学校的草坪。</item>
</string-array>
<string-array name="title_arr">
<item>死地产表示出版社u白崇禧必须</item>
<item>停止晚自习,我和同学一起回荚冬</item>
<item>假如哪个人是我爸爸,我多么希看有一个好心人上前伸出一只手,帮他一把。假如那是你,</item>
<item>我停了的行人一样,脚步并没有动,的确有很多人同情他,同情也的确对他没用,他还是站不起来,一遍一遍看他起来又摔倒,只好转过头,他没有一点男子汉的心胸。</item>
<item>他穿着青色衣服,双手扶地,似乎挣扎着坐起来,一次又一次尝试着。旁边躺着他的尽看的大梁自行车,等待着主人扶</item>
<item>春天。</item>
<item>夏天极了。</item>
<item>冬天,雪花落到</item>
<item>草坪就像的草坪。</item>
</string-array>

接着编写显示主界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainActivity extends AppCompatActivity{
private ListView listview;
//private ArrayAdapter<String>arr_adapter;
private SimpleAdapter simp_Adapter;
private List<Map<String,String>>datalist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView)findViewById(R.id.listview);
datalist = new ArrayList<Map<String,String>>();
simp_Adapter = new SimpleAdapter(this,getData(),R.layout.item,
new String[]{"title","text"},new int[]{R.id.title,R.id.text});
listview.setAdapter(simp_Adapter);
}
private List<Map<String,String>> getData(){
String[] data_text = getResources().getStringArray(R.array.text_arr);
String[] data_title = getResources().getStringArray(R.array.title_arr);
for(int i=0;i<data_text.length;i++){
Map<String,String>map = new HashMap<String,String>();
map.put("title",data_title[i]);
map.put("text",data_text[i]);
datalist.add(map);
}
return datalist;
}
}

其对应的activity_main.xml文件为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.lpf.test.MainActivity">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:background="@color/bg"
android:divider="@color/item_item"
android:dividerHeight="10dp"/>
</RelativeLayout>

再然后,编写点击后的后台跳转逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ShowActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
Bundle bundle = getIntent().getExtras();
String title = bundle.getString("title");
String text = bundle.getString("text");
TextView title_view = (TextView) findViewById(R.id.title);
title_view.setText(title);
TextView text_view = (TextView) findViewById(R.id.text);
text_view.setMovementMethod(ScrollingMovementMethod.getInstance());
text_view.setText(text);
}
}

对应的activity_show.xml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
android:text="@string/title"
android:textSize="22sp"
android:typeface="monospace"
android:background="@color/itembg"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:textSize="18sp"
android:textColor="@color/textbg"
android:typeface="normal"
android:scrollbars="vertical"
android:text="@string/text"/>
</LinearLayout>

最后就是负责点击跳转的任务的后台程序了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class TestActivity extends ListActivity {
String[] data = {"北京","西安","广州","上海"};
ListView lstview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lstview = (ListView)findViewById(R.id.listview);
lstview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String s = data[position];
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
R.layout.item,
R.id.listview,
data
);
lstview.setAdapter(adapter);
}
}

附加一个item.xml用于接收显示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/white_bg">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
android:text="@string/title"
android:textSize="20sp"
android:typeface="monospace"
android:background="@color/itembg"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:textSize="15sp"
android:textColor="@color/textbg"
android:typeface="normal"
android:maxLines="3"
android:ellipsize="end"
android:text="@string/text"/>
</LinearLayout>

至此一个新闻客户端基本框架就已经编写完毕!



The link of this page is https://blog.nooa.tech/articles/8fb3f6d8/ . Welcome to reproduce it!

© 2018.02.08 - 2024.05.25 Mengmeng Kuang  保留所有权利!

:D 获取中...

Creative Commons License