Java 试图在android studio中将此活动转换为一个片段,到目前为止运气不佳

Java 试图在android studio中将此活动转换为一个片段,到目前为止运气不佳,java,android,android-fragments,android-activity,fragment,Java,Android,Android Fragments,Android Activity,Fragment,这是我的测试活动,我想把它转换成一个片段。 请指导我如何将此活动转换为选项卡视图中的片段。 我是android应用程序开发的新手,这是我目前无法做到的 package in.catking.catking; 导入android.content.Intent; 导入android.os.AsyncTask; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入android.widge

这是我的测试活动,我想把它转换成一个片段。 请指导我如何将此活动转换为选项卡视图中的片段。 我是android应用程序开发的新手,这是我目前无法做到的

package in.catking.catking;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入android.widget.ProgressBar;
导入android.widget.Toast;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类test2扩展了AppCompatActivity{
字符串API_KEY=“ABA”//API所有者XYX
字符串NEWS_SOURCE=“in”;
公共列表查看列表新闻;
钢筋装载机;
public ArrayList dataList=new ArrayList();
静态最终字符串键\u AUTHOR=“AUTHOR”;
静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u DESCRIPTION=“DESCRIPTION”;
静态最终字符串键\u URL=“URL”;
静态最终字符串键\u URLTOIMAGE=“URLTOIMAGE”;
静态最终字符串键\u PUBLISHEDAT=“PUBLISHEDAT”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test2);
listNews=(ListView)findViewById(R.id.listNews);
loader=(ProgressBar)findviewbyd(R.id.loader);
setEmptyView(加载程序);
if(Function.isNetworkAvailable(getApplicationContext()))
{
DownloadNews任务=新建DownloadNews();
newsTask.execute();
}否则{
Toast.makeText(getApplicationContext(),“无Internet连接”,Toast.LENGTH_LONG.show();
}
}
类DownloadNews扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
受保护的字符串doInBackground(字符串…args){
字符串xml=”“;
字符串urlParameters=“”;//xml=Function.excuteGet(“https://newsapi.org/v2/top-headlines?country=“+NEWS\u SOURCE+”&apiKey=“+API\u KEY,urlParameters);
xml=Function.excuteGet(“https://newsapi.org/v2/top-headlines?country=“+NEWS\u SOURCE+”&apiKey=“+API\u KEY,urlParameters);
返回xml;
}
@凌驾
受保护的void onPostExecute(字符串xml){
如果(xml.length()>10){//只要检查是否为空
试一试{
JSONObject jsonResponse=新的JSONObject(xml);
JSONArray JSONArray=jsonResponse.optJSONArray(“文章”);
for(int i=0;i}
一般来说,要将活动转换为片段,通常需要执行以下操作:

  • 将布局从
    activity\u test2.xml
    移动到
    fragment\u a.xml
    。 如果片段应该出现在其父活动的工具栏下方,请将属性
    app:layout\u behavior=“@string/appbar\u scrolling\u view\u behavior”>
    添加到片段XML的根布局中

  • onCreate
    代码从活动移动到片段内的
    onCreateView
    方法。您自己的方法可以简单地复制到Fragment类中

  • 要使
    findViewById()
    在片段内部工作,请执行以下操作:

    public ListView listNews; 
    ProgressBar loader;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_a, container, false);
    
        listNews = rootView.findViewById(R.id.listNews);
        loader = rootView.findViewById(R.id.loader);
    
        return rootView;
    }
    
  • 将所有
    getApplicationContext()
    调用替换为
    getActivity()

  • 如果您已经覆盖了任何特定于活动的生命周期方法,则可能需要将代码移动到相应的片段生命周期方法中。例如,活动中的
    onDestroy
    代码被移动到片段中的
    onDestroyView
    。可以找到活动和片段生命周期以及它们之间的关系

  • AsyncTask
    内部类可以简单地移动到Fragment类内部。 就我现在所见,适配器也可以保持不变。您可能(不完全确定)只需要更换
    私人活动
    具有
    
    privat