Android實驗活動與Intent的使用
實驗內容:
-
設計一個新聞類用于存盤新聞內容,如:
class News{ public String title; public String content; public String Source; public String Time; } -
讓程式默認加載ListActivity,創建長度為2的News物件陣列,并為其硬編碼賦值,將兩個陣列元素中的值分別加載到兩個新聞串列項中
-
點擊串列項,進入Detail,使用Intent將該串列項對應的News物件值傳入,并顯示在界面中
-
進入DetailActivity和退出DetailActivity時,分別記錄時間,如果用戶停留時間超過30秒,則向List傳值,表示該新聞已讀,ListActivity將標記為已讀的文字顯示為灰色
實驗截圖:





Java代碼:
DetailActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class DetailActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
News news = (News) getIntent().getSerializableExtra("news");
TextView title = findViewById(R.id.title);
title.setText(news.getTitle());
TextView source = findViewById(R.id.source);
source.setText(news.getSource());
TextView time = findViewById(R.id.date);
time.setText(news.getTime());
TextView content = findViewById(R.id.content);
content.setText(news.getContent());
}
}
News.java:
package com.example.myapplication;
import java.io.Serializable;
public class News implements Serializable {
public String title;
public String content;
public String source;
public String time;
public int id;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
NewsActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class NewsActivity extends AppCompatActivity {
public News[] news = new News[2];
public static long stopTime1,stopTime2;
public static int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);
news[0] = new News();
news[0].setTitle("海綿寶寶快樂的一天");
news[0].setContent("海綿寶寶和派大星打架,派大星:你這個黃色塊塊!海綿寶寶:你這個粉紅尖尖!");
news[0].setSource("來源:新華網");
news[0].setTime("2020/10/15");
news[0].setId(1);
news[1] = new News();
news[1].setTitle("派大星星開心的一天");
news[1].setContent("派大星:他真是可怕了,一看到他我就惡心!那雙大牛眼睛、方身體、兩顆大門牙,還有那個愚蠢的領帶!真是太可怕了! 海綿寶寶:呃…… 派大星:但是這些在你身上就很好看~");
news[1].setSource("來源:新華網");
news[1].setTime("2020/10/15");
news[1].setId(2);
RelativeLayout news1 = findViewById(R.id.news1);
news1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTime1=System.currentTimeMillis();
id=news[0].getId();
Intent intent = new Intent(NewsActivity.this,DetailActivity.class);
intent.putExtra("news",news[0]);
startActivity(intent);
}
});
RelativeLayout news2 = findViewById(R.id.news2);
news2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTime1=System.currentTimeMillis();
id=news[1].getId();
Intent intent = new Intent(NewsActivity.this,DetailActivity.class);
intent.putExtra("news",news[1]);
startActivity(intent);
}
});
}
@Override
protected void onRestart() {
super.onRestart();
stopTime2=System.currentTimeMillis();
if((stopTime2-stopTime1)/1000>30){
if (id==1){
TextView title = findViewById(R.id.listtitle1);
title.setTextColor(Color.GRAY);
}
else if(id==2){
TextView title = findViewById(R.id.listtitle2);
title.setTextColor(Color.GRAY);
}
}
}
}
布局檔案代碼
Activity_detail.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".DetailActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textColor="#000000"
android:textSize="25sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/source"
android:textColor="#000000"
android:textSize="15sp" />
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="15sp"
android:gravity="right"
android:layout_weight="1"/>
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="33dp"
android:src="@drawable/timg"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:textColor="#000000"
android:textSize="17sp"
/>
</LinearLayout>
Activity_news.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:orientation="vertical"
tools:context=".NewsActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:id="@+id/news1">
<ImageView
android:id="@+id/listimage1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:adjustViewBounds="true"
android:maxWidth="90dp"
android:maxHeight="80dp"
android:src="@drawable/haibao" />
<TextView
android:id="@+id/listtitle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@id/listimage1"
android:text="海綿寶寶快樂的一天"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/listsource1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listtitle1"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_toRightOf="@id/listimage1"
android:text="來源:新華網"
android:textSize="15sp" />
<TextView
android:id="@+id/listdate1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listtitle1"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginTop="15dp"
android:text="時間:2020/10/09"
android:textSize="15sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/news2"
android:clickable="true">
<ImageView
android:id="@+id/listimage2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:adjustViewBounds="true"
android:maxWidth="90dp"
android:maxHeight="80dp"
android:src="@drawable/paidaxing" />
<TextView
android:id="@+id/listtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@id/listimage2"
android:text="派大星星開心的一天"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/listsource2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listtitle2"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_toRightOf="@id/listimage2"
android:text="來源:新華網"
android:textSize="15sp" />
<TextView
android:id="@+id/listdate2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listtitle2"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginTop="15dp"
android:text="時間:2020/10/09"
android:textSize="15sp" />
</RelativeLayout>
</LinearLayout>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/211938.html
標籤:其他
