Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions README.md

This file was deleted.

7 changes: 4 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:28.0.0'
}
3 changes: 3 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".activity.DetailActivity"></activity>
<activity android:name=".Adapter.Useradapter" />
<activity android:name=".Adapter.UserAdapter" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
51 changes: 46 additions & 5 deletions app/src/main/java/com/nd/frt/recentconversation/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,69 @@
package com.nd.frt.recentconversation;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;

import com.nd.frt.recentconversation.adapter.UserAdapter;
import com.nd.frt.recentconversation.activity.DetailActivity;
import com.nd.frt.recentconversation.adapter.UsersAdapter;
import com.nd.frt.recentconversation.model.UserInfo;
import com.nd.frt.recentconversation.service.UserInfoService;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private RecyclerView.Adapter userAdapter;
private UsersAdapter mUserAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UserInfoService userInfoService = new UserInfoService();
List<UserInfo> userInfos = userInfoService.getUserInfos(this);
UserAdapter userAdapter = new UserAdapter(userInfos);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rvRecyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerView.setAdapter(userAdapter);
RecyclerView recy_list = findViewById(R.id.recy_list);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

不建议使用下划线命名规则,使用recyList

recy_list.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false));
mUserAdapter = new UsersAdapter(userInfos);
recy_list.setAdapter(mUserAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==R.id.menu_add){
UserInfo userInfo = new UserInfo();
userInfo.userName = "wushimian";
userInfo.content = "767441080@qq.com";
userInfo.avatarUrl = "https://randomuser.me/api/portraits/men/18.jpg";
mUserAdapter.add(userInfo);
return true;
}
return super.onOptionsItemSelected(item);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
if (data != null) {
UserInfo userInfo = (UserInfo) data.getSerializableExtra(DetailActivity.PARAM_USER_INFO);
int index = data.getIntExtra(DetailActivity.PARAM_USER_INDEX,0);
mUserAdapter.edit(index,userInfo);
}
}
}
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.nd.frt.recentconversation.activity;

class Actvity {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

???这个做什么?

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.nd.frt.recentconversation.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.nd.frt.recentconversation.R;
import com.nd.frt.recentconversation.model.UserInfo;

public class DetailActivity extends AppCompatActivity {
public static final String PARAM_USER_INFO = " user_info";
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

空行

public static final String PARAM_USER_INDEX = "user_index";
public UserInfo mUserInfo;
private int mUserIndex;

public static void start(Activity context, int index, UserInfo userInfo,int requestCode) {
Intent starter = new Intent(context, DetailActivity.class);
starter.putExtra(PARAM_USER_INFO,userInfo);
starter.putExtra(PARAM_USER_INDEX,index);
context.startActivityForResult(starter,requestCode);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
ActionBar supportActionBar = getSupportActionBar();
assert supportActionBar != null;
supportActionBar.setDisplayHomeAsUpEnabled(true);
final Intent intent = getIntent();
mUserInfo = ((UserInfo) intent.getSerializableExtra(PARAM_USER_INFO));
mUserIndex = intent.getIntExtra(PARAM_USER_INDEX,0);

supportActionBar.setTitle(mUserInfo.userName);
supportActionBar.setSubtitle(mUserInfo.content);
final EditText etUserName = findViewById(R.id.etUserName);
ImageView ivAvatar = findViewById(R.id.ivAvatar);
Glide.with(this)
.load(mUserInfo.avatarUrl)
.into(ivAvatar);
findViewById(R.id.btnOk).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mUserInfo.userName = etUserName.getText().toString();
Intent intentResult = new Intent();
intentResult.putExtra(PARAM_USER_INFO, mUserInfo);
intentResult.putExtra(PARAM_USER_INDEX, mUserIndex );
setResult(RESULT_OK,intentResult);
finish();
}
});

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home){
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.nd.frt.recentconversation.adapter;

import android.app.Activity;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bumptech.glide.Glide;
import com.nd.frt.recentconversation.R;
import com.nd.frt.recentconversation.activity.DetailActivity;
import com.nd.frt.recentconversation.model.UserInfo;
import com.nd.frt.recentconversation.viewholder.UserViewHolder;

import java.util.List;

public class UsersAdapter extends RecyclerView.Adapter<UserViewHolder> {

private List<UserInfo> mUserInfos;
private int REQUEST_EDIT_USER_INFO = 0x1001;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

错误的常量定义private static final


public UsersAdapter(List<UserInfo>userInfos) {
mUserInfos = userInfos;
}

@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater layoutInflater = LayoutInflater.from(viewGroup.getContext());
View itemView = layoutInflater.inflate(R.layout.item_user, viewGroup, false);
return new UserViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull UserViewHolder userViewHolder, final int position) {
final UserInfo userInfo = mUserInfos.get(position);
Glide.with(userViewHolder.itemView.getContext())
.load(userInfo.avatarUrl)
.into(userViewHolder.mIvatar);
userViewHolder.mtvUserName.setText(userInfo.userName);
userViewHolder.mtvEmail.setText(userInfo.content);
userViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DetailActivity.start((Activity) v.getContext(),position,userInfo,REQUEST_EDIT_USER_INFO);
}
});

}

@Override
public int getItemCount() {
return mUserInfos.size();
}

public void add(UserInfo userInfo){
mUserInfos.add(userInfo);
notifyDataSetChanged();
}

public void edit(int index,UserInfo userInfo){
mUserInfos.set(index,userInfo);
notifyDataSetChanged();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.nd.frt.recentconversation.model;

public class UserInfo {
import java.io.Serializable;

public class UserInfo implements Serializable {

public String avatarUrl;
public String userName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@

public class UserViewHolder extends RecyclerView.ViewHolder {

public final ImageView mIvAvatar;
public final TextView mTvUserName;
public final TextView mTvEmail;
public final ImageView mIvatar;
public final TextView mtvUserName;
public final TextView mtvEmail;

public UserViewHolder(@NonNull View itemView) {
super(itemView);
mIvAvatar = itemView.findViewById(R.id.ivAvatar);
mTvUserName = itemView.findViewById(R.id.tvUserName);
mTvEmail = itemView.findViewById(R.id.tvEmail);
mIvatar = itemView.findViewById(R.id.ivAvatar);
mtvUserName = itemView.findViewById(R.id.tvUserName);
mtvEmail = itemView.findViewById(R.id.tvEmail);

}

}
10 changes: 10 additions & 0 deletions app/src/main/res/drawable-anydpi/ic_add_name.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF">
<path
android:fillColor="#FF000000"
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>
Binary file added app/src/main/res/drawable-hdpi/ic_add_name.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-mdpi/ic_add_name.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-xhdpi/ic_add_name.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-xxhdpi/ic_add_name.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions app/src/main/res/layout/activity_detail.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?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"
android:gravity="center_horizontal"
tools:context=".activity.DetailActivity">

<ImageView
android:contentDescription="@string/avatar"
android:id="@+id/ivAvatar"
android:layout_width="96dp"
android:layout_height="96dp" />

<EditText
android:id="@+id/etUserName"
android:hint="@string/username"
android:layout_width="match_parent"
android:inputType="text"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
tools:ignore="Autofill" />

<Button
android:id="@+id/btnOk"
android:text="@android:string/ok"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Loading