深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
app:layout_constraintStart_toStartOf=“parent”
app:layout_constraintTop_toBottomOf=“@+id/profile” />
<ImageView
android:id=“@+id/image”
android:layout_width=“match_parent”
android:layout_height=“200dp”
android:layout_marginTop=“8dp”
app:layout_constraintEnd_toEndOf=“parent”
app:layout_constraintHorizontal_bias=“0.0”
app:layout_constraintStart_toStartOf=“parent”
app:layout_constraintTop_toBottomOf=“@+id/status”
tools:srcCompat=“@tools:sample/backgrounds/scenic” />
<TextView
android:id=“@+id/time”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginStart=“28dp”
android:layout_marginLeft=“28dp”
android:layout_marginTop=“10dp”
android:text=“TextView”
app:layout_constraintStart_toEndOf=“@+id/profile”
app:layout_constraintTop_toBottomOf=“@+id/title” />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
基于数据创建模型类:
这里我们使用了api,根据数据进行解析,因此它是modelclass.java
package com.saurabhjadhav.quantsapp_task;
public class model_class {
private String title;
private String profilepic;
private String image;
private String status;
private String time;
public model_class(String title, String profilepic, String image, String status, String time) {
this.title = title;
this.profilepic = profilepic;
this.image = image;
this.status = status;
this.time = time;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getProfilepic() {
return profilepic;
}
public void setProfilepic(String profilepic) {
this.profilepic = profilepic;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
现在为回收器视图创建适配器类:
回收适配器.java
package com.saurabhjadhav.quantsapp_task;
import android.content.Context;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
public class recycler_adapter extends RecyclerView.Adapter<recycler_adapter.recyclerviewHolder> {
private Context mcontext;
private ArrayList<model_class> mmodelClassArrayList;
public recycler_adapter(Context context,ArrayList<model_class> modelClassArrayList)
{
mcontext=context;
mmodelClassArrayList=modelClassArrayList;
}
@NonNull
@Override
public recyclerviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v= LayoutInflater.from(mcontext).inflate(R.layout.item_feed,parent,false);
return new recyclerviewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull recyclerviewHolder holder, int position) {
model_class currentitem=mmodelClassArrayList.get(position);
String title1=currentitem.getTitle();
String image1=currentitem.getImage();
String profile1=currentitem.getProfilepic();
String status1=currentitem.getStatus();
holder.status.setText(status1);
holder.title.setText(title1);
CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(
Long.parseLong(currentitem.getTime()),
System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS);
holder.time2.setText(timeAgo);
Picasso.get().load(profile1).into(holder.profile2);
Picasso.get().load(image1).into(holder.Image2);
}
@Override
public int getItemCount() {
return mmodelClassArrayList.size();
}
public class recyclerviewHolder extends RecyclerView.ViewHolder{
public ImageView profile2,Image2;
public TextView title,status,time2;
public recyclerviewHolder(@NonNull View itemView) {
super(itemView);
profile2=itemView.findViewById(R.id.profile);
Image2=itemView.findViewById(R.id.image);
title=itemView.findViewById(R.id.title);
status=itemView.findViewById(R.id.status);
time2=itemView.findViewById(R.id.time);
}
}
}
现在打开MainActivity.java
声明变量并在创建时绑定适配器和回收器视图:
public class MainActivity extends AppCompatActivity {
private RecyclerView mrecyclerView;
private recycler_adapter mrecycler_adapter;
private ArrayList<model_class> model_classArrayList;
private RequestQueue mrequestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mrecyclerView=findViewById(R.id.recyclerview);
mrecyclerView.setLayoutManager(new LinearLayoutManager(this));
model_classArrayList=new ArrayList<>();
mrequestQueue= Volley.newRequestQueue(this);
parseJSON();//this is for parsing we will create it
}
}
现在定义parseJSON,在这里我们将使用Volley:
private void parseJSON()
{
String url=“https://api.androidhive.info/feed/feed.json”;
JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray=response.getJSONArray(“feed”);
for (int i=0;i<jsonArray.length();i++)
{
JSONObject feed=jsonArray.getJSONObject(i);
String title1=feed.getString(“name”);
String image1=feed.getString(“image”);
String profile1=feed.getString(“profilePic”);
String status1=feed.getString(“status”);
String time=feed.getString(“timeStamp”);
model_classArrayList.add(new model_class(title1,profile1,image1,status1,time));
}
mrecycler_adapter=new recycler_adapter(MainActivity.this
,model_classArrayList);
mrecyclerView.setAdapter(mrecycler_adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mrequestQueue.add(request);
}
完整Mainactivity.java
package com.saurabhjadhav.quantsapp_task;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
widget.RecyclerView;
import android.os.Bundle;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
[外链图片转存中…(img-F7NLJBBy-1715801556711)]
[外链图片转存中…(img-A8ng2lOk-1715801556712)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!