Java 将此活动转换为片段
我希望能够帮助将此活动转换为片段 这是聊天的一部分,在这项活动中会有同意与他们聊天的用户,我不是很精通这门语言Java 将此活动转换为片段,java,android,android-fragments,android-activity,Java,Android,Android Fragments,Android Activity,我希望能够帮助将此活动转换为片段 这是聊天的一部分,在这项活动中会有同意与他们聊天的用户,我不是很精通这门语言 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_users); usersList = (ListView)findViewById(R.id.u
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_users);
usersList = (ListView)findViewById(R.id.usersList);
noUsersText = (TextView)findViewById(R.id.noUsersText);
pd = new ProgressDialog(Users.this);
pd.setMessage("Loading...");
pd.show();
String url = "https://androidchatapp-76776.firebaseio.com/users.json";
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {
doOnSuccess(s);
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("" + volleyError);
}
});
RequestQueue rQueue = Volley.newRequestQueue(Users.this);
rQueue.add(request);
usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
UserDetails.chatWith = al.get(position);
startActivity(new Intent(Users.this, Chat.class));
}
});
}
public void doOnSuccess(String s){
try {
JSONObject obj = new JSONObject(s);
Iterator i = obj.keys();
String key = "";
while(i.hasNext()){
key = i.next().toString();
if(!key.equals(UserDetails.username)) {
al.add(key);
}
totalUsers++;
}
} catch (JSONException e) {
e.printStackTrace();
}
if(totalUsers <=1){
noUsersText.setVisibility(View.VISIBLE);
usersList.setVisibility(View.GONE);
}
else{
noUsersText.setVisibility(View.GONE);
usersList.setVisibility(View.VISIBLE);
usersList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al));
}
pd.dismiss();
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_用户);
usersList=(ListView)findViewById(R.id.usersList);
nouser文本=(TextView)findViewById(R.id.nouser文本);
pd=新建进度对话框(Users.this);
pd.setMessage(“加载…”);
pd.show();
字符串url=”https://androidchatapp-76776.firebaseio.com/users.json";
StringRequest=newStringRequest(request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串s){
最终成功;
}
},new Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
System.out.println(““+截击错误”);
}
});
RequestQueue rQueue=Volley.newRequestQueue(Users.this);
rQueue.add(请求);
usersList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
UserDetails.chatWith=al.get(位置);
startActivity(新意图(Users.this、Chat.class));
}
});
}
公共void doOnSuccess(字符串s){
试一试{
JSONObject obj=新的JSONObject;
迭代器i=obj.keys();
字符串键=”;
while(i.hasNext()){
key=i.next().toString();
如果(!key.equals(UserDetails.username)){
al.添加(键);
}
totalUsers++;
}
}捕获(JSONException e){
e、 printStackTrace();
}
如果(totalUsers)在创建fragment类后将其添加到onCreateView
(只需膨胀布局而不是setContent
和getActivity()
而不是this
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.activity_users, container, false);
usersList = (ListView)view.findViewById(R.id.usersList);
noUsersText = (TextView)view.findViewById(R.id.noUsersText);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
pd = new ProgressDialog(getContext());
pd.setMessage("Loading...");
pd.show();
String url = "https://androidchatapp-76776.firebaseio.com/users.json";
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {
doOnSuccess(s);
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("" + volleyError);
}
});
RequestQueue rQueue = Volley.newRequestQueue(getActivity());
rQueue.add(request);
usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
UserDetails.chatWith = al.get(position);
startActivity(new Intent(getActivity(), Chat.class));
}
});
}
public void doOnSuccess(String s){
try {
JSONObject obj = new JSONObject(s);
Iterator i = obj.keys();
String key = "";
while(i.hasNext()){
key = i.next().toString();
if(!key.equals(UserDetails.username)) {
al.add(key);
}
totalUsers++;
}
} catch (JSONException e) {
e.printStackTrace();
}
if(totalUsers <=1){
noUsersText.setVisibility(View.VISIBLE);
usersList.setVisibility(View.GONE);
}
else{
noUsersText.setVisibility(View.GONE);
usersList.setVisibility(View.VISIBLE);
usersList.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, al));
}
pd.dismiss();
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.activity\u用户,容器,错误);
usersList=(ListView)view.findViewById(R.id.usersList);
nouser文本=(TextView)view.findViewById(R.id.nouser文本);
返回视图;
}
@凌驾
已创建公用void onview(@NonNull视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
pd=新建ProgressDialog(getContext());
pd.setMessage(“加载…”);
pd.show();
字符串url=”https://androidchatapp-76776.firebaseio.com/users.json";
StringRequest=newStringRequest(request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串s){
最终成功;
}
},new Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
System.out.println(““+截击错误”);
}
});
RequestQueue rQueue=Volley.newRequestQueue(getActivity());
rQueue.add(请求);
usersList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
UserDetails.chatWith=al.get(位置);
startActivity(新意图(getActivity(),Chat.class));
}
});
}
公共void doOnSuccess(字符串s){
试一试{
JSONObject obj=新的JSONObject;
迭代器i=obj.keys();
字符串键=”;
while(i.hasNext()){
key=i.next().toString();
如果(!key.equals(UserDetails.username)){
al.添加(键);
}
totalUsers++;
}
}捕获(JSONException e){
e、 printStackTrace();
}
如果(totalUsers步骤1.在您的活动中\u users.xml
放入框架布局
标记
<?xml version="1.0" encoding="utf-8"?>
<...>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
...
</...>
仅此而已。您的活动现在只是一个片段这是一个非常糟糕的建议。永远不要在onCreateView()方法中添加任何要求更高的操作(如API调用)!将其移动到onViewCreated()中取而代之。请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import yourpackage.R;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class MyFragment extends Fragment {
private ListView usersList;
private TextView noUsersText;
private ProgressDialog pd;
private int totalUsers;
private List<String> al;
public MyFragment() { }
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my, container, false);
usersList = view.findViewById(R.id.usersList);
noUsersText = view.findViewById(R.id.noUsersText);
pd = new ProgressDialog(Users.this);
pd.setMessage("Loading...");
pd.show();
String url = "https://androidchatapp-76776.firebaseio.com/users.json";
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {
doOnSuccess(s);
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("" + volleyError);
}
});
RequestQueue rQueue = Volley.newRequestQueue(Users.this);
rQueue.add(request);
usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
UserDetails.chatWith = al.get(position);
startActivity(new Intent(getActivity(), Chat.class));
}
});
return view;
}
public void doOnSuccess(String s){
try {
JSONObject obj = new JSONObject(s);
al = new ArrayList<>();
Iterator i = obj.keys();
String key = "";
while(i.hasNext()){
key = i.next().toString();
if(!key.equals(UserDetails.username)) {
al.add(key);
}
totalUsers++;
}
} catch (JSONException e) {
e.printStackTrace();
}
if(totalUsers <=1){
noUsersText.setVisibility(View.VISIBLE);
usersList.setVisibility(View.GONE);
}
else{
noUsersText.setVisibility(View.GONE);
usersList.setVisibility(View.VISIBLE);
usersList.setAdapter(new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, al));
}
pd.dismiss();
}
}
FragmentManager fragMan = getSupportFragmentManager();
FragmentTransaction transaction = fragMan.beginTransaction();
transaction.replace(R.id.container, new MyFragment());
transaction.commit();