Skip to content
This repository has been archived by the owner on Feb 1, 2024. It is now read-only.

Commit

Permalink
Merge pull request #1270 from 18CS118/master
Browse files Browse the repository at this point in the history
#4 #315 提交实验4
  • Loading branch information
zengsn authored Dec 11, 2020
2 parents 7b56c4c + c1b85a0 commit 209a7ef
Show file tree
Hide file tree
Showing 11 changed files with 247 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,20 @@
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class LookPyqActivity extends AppCompatActivity {
import java.util.ArrayList;
import java.util.List;

import edu.hzuapps.pyq.listview.Message;
import edu.hzuapps.pyq.listview.MessageAdapter;

public class LookPyqActivity extends AppCompatActivity {
private List<Message> messageList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -22,5 +32,66 @@ public void onClick(View v) {
startActivity(intent);
}
});

// Button sendBtn = (Button)findViewById(R.id.sendBtn);
// sendBtn.setOnClickListener(new View.OnClickListener(){
// @Override
// public void onClick(View view) {
// String content = ((EditText) findViewById(R.id.content)).getText().toString();
// if(!content.isEmpty()){
// Message message = new Message(content, R.drawable.pyqlogo);
// messageList.add(message);
// }
// }
// });

final LookPyqActivity thisActivity = this;

// Button listBtn = (Button) findViewById(R.id.button_main);
// listBtn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Intent intent = new Intent(thisActivity,LookPyqActivity.class);
// startActivity(intent);
// }
// });

// 先拿到数据并放在适配器上
initMessage(); //初始化水果数据
MessageAdapter adapter=new MessageAdapter(LookPyqActivity.this,R.layout.message_item,messageList);

// 将适配器上的数据传递给listView
ListView listView=findViewById(R.id.list_view);
listView.setAdapter(adapter);

// 为ListView注册一个监听器,当用户点击了ListView中的任何一个子项时,就会回调onItemClick()方法
// 在这个方法中可以通过position参数判断出用户点击的是那一个子项
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Message message=messageList.get(position);
Toast.makeText(LookPyqActivity.this,message.getName(),Toast.LENGTH_SHORT).show();
}
});
}

// 初始化数据
private void initMessage(){
Message a=new Message("一万年太长,和你在一起,只争朝夕。",R.drawable.pyqlogo);
messageList.add(a);
Message b=new Message("情书给你一封,情话给你一句,余生给你一人。",R.drawable.pyqlogo);
messageList.add(b);
Message c=new Message("我想要的未来,就是每天早上起床,都能看见你和阳光都在。",R.drawable.pyqlogo);
messageList.add(c);
Message d=new Message("想要的,就是无论有多难,依然有那么一个人和我相依相守。",R.drawable.pyqlogo);
messageList.add(d);
Message d2=new Message("没我喜欢风,无拘无束,我喜欢星辰,安静明亮,我喜欢深海中的鲸,孤独澄净,我喜欢动漫,温暖心弦,我喜欢你,没有道理。",R.drawable.pyqlogo);
messageList.add(d2);
Message d3=new Message("千世界,处处繁花似锦,能够遇见你三生有幸。",R.drawable.pyqlogo);
messageList.add(d3);
Message d4=new Message("终于遇见了你,从此不必在意阴晴风雨,从此随心所欲地老去。",R.drawable.pyqlogo);
messageList.add(d4);


}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,13 @@
import android.view.View;
import android.widget.Button;

public class Sec1814080911118Activity extends AppCompatActivity {
import java.util.ArrayList;
import java.util.List;

import edu.hzuapps.pyq.listview.Message;

public class Sec1814080911118Activity extends AppCompatActivity {
private List<Message> messageList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -24,5 +29,7 @@ public void onClick(View v) {
startActivity(intent);
}
});

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.media.session.MediaSession;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SendPyqActivity extends AppCompatActivity {
import edu.hzuapps.pyq.listview.Message;

public class SendPyqActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package edu.hzuapps.pyq.listview;

public class Message {
private String name;
private int imageId;

public Message(String name,int imageId){
this.name=name;
this.imageId=imageId;
}

public void setName(String name) {
this.name = name;
}

public void setImageId(int imageId) {
this.imageId = imageId;
}

public String getName(){
return name;
}

public int getImageId(){
return imageId;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package edu.hzuapps.pyq.listview;

import android.content.Context;
import android.view.View;
import android.widget.ArrayAdapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

import edu.hzuapps.pyq.R;
import edu.hzuapps.pyq.listview.Message;

public class MessageAdapter extends ArrayAdapter<Message> {
private int resourceId;

// 适配器的构造函数,把要适配的数据传入这里
public MessageAdapter(Context context, int textViewResourceId, List<Message> objects){
super(context,textViewResourceId,objects);
resourceId=textViewResourceId;
}

// convertView 参数用于将之前加载好的布局进行缓存
@Override
public View getView(int position, View convertView, ViewGroup parent){
Message message=getItem(position); //获取当前项的Fruit实例

// 加个判断,以免ListView每次滚动时都要重新加载布局,以提高运行效率
View view;
ViewHolder viewHolder;
if (convertView==null){

// 避免ListView每次滚动时都要重新加载布局,以提高运行效率
view=LayoutInflater.from(getContext()).inflate(resourceId,parent,false);

// 避免每次调用getView()时都要重新获取控件实例
viewHolder=new ViewHolder();
viewHolder.messageName=view.findViewById(R.id.message_content);
viewHolder.messageImage=view.findViewById(R.id.message_image);

// 将ViewHolder存储在View中(即将控件的实例存储在其中)
view.setTag(viewHolder);
} else{
view=convertView;
viewHolder=(ViewHolder) view.getTag();
}

// 获取控件实例,并调用set...方法使其显示出来
viewHolder.messageImage.setImageResource(message.getImageId());
viewHolder.messageName.setText(message.getName());
return view;
}

// 定义一个内部类,用于对控件的实例进行缓存
class ViewHolder{
ImageView messageImage;
TextView messageName;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
Expand All @@ -10,7 +11,12 @@
android:id="@+id/btnLook"
android:layout_width="120dp"
android:layout_height="70dp"
android:text="发朋友圈"
tools:layout_editor_absoluteX="275dp"
tools:layout_editor_absoluteY="16dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
android:text="@string/look_pyq"
android:layout_alignParentRight="true"/>

<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="70sp"/>
</RelativeLayout>
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@
android:id="@+id/button_main"
android:layout_width="407dp"
android:layout_height="50dp"
android:layout_marginTop="300dp"
android:layout_marginTop="400dp"
android:text="朋友圈" />

<ImageView
android:layout_width="150sp"
android:layout_height="150sp"
android:layout_width="match_parent"
android:layout_height="350dp"
android:src="@drawable/pyqlogo" />





</RelativeLayout>
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SendPyqActivity">
android:orientation="vertical">

</androidx.constraintlayout.widget.ConstraintLayout>
<EditText
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="100sp"
android:layout_marginTop="200sp"/>
<Button
android:id="@+id/sendBtn"
android:layout_width="match_parent"
android:layout_height="50sp"
android:text="@string/submit"/>

</LinearLayout>
32 changes: 32 additions & 0 deletions students/sec1814080911118/app/src/main/res/layout/message_item.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#97a791"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/message_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="10sp"
android:layout_marginBottom="10sp"/>

<TextView
android:id="@+id/message_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:layout_marginBottom="10sp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp" />
</LinearLayout>

</LinearLayout>
6 changes: 6 additions & 0 deletions students/sec1814080911118/app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
</resources>
2 changes: 2 additions & 0 deletions students/sec1814080911118/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<resources>
<string name="app_name">PYQ</string>
<string name="look_pyq">发朋友圈</string>
<string name="submit">提交</string>
</resources>

0 comments on commit 209a7ef

Please sign in to comment.