如何将活动代码添加到Fragment Android

时间:2015-01-26 23:15:35

标签: android android-activity android-fragments feed

Hello每个我都会在片段中添加此活动

此片段用于滑动菜单 此活动适用于Feed阅读器 但问题是如何在片段

中添加此活动代码

谢谢大家;)

MainActivity

public class MainActivity extends Activity implements OnItemClickListener {
private static final String rssFeed = "http://softgriphost.esy.es/Android-Rss-software.xml";

List<Item> arrayOfList;
ListView listView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    listView = (ListView) findViewById(R.id.listview);
    listView.setOnItemClickListener(this);

    if (Utils.isNetworkAvailable(MainActivity.this)) {
        new MyTask().execute(rssFeed);
    } else {
        showToast("No Network Connection!!!");
    }

}

// My AsyncTask start...

class MyTask extends AsyncTask<String, Void, Void> {

    ProgressDialog pDialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        pDialog = new ProgressDialog(MainActivity.this);
        pDialog.setMessage("Loading...");
        pDialog.show();

    }

    @Override
    protected Void doInBackground(String... params) {
        arrayOfList = new NamesParser().getData(params[0]);
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (null != pDialog && pDialog.isShowing()) {
            pDialog.dismiss();
        }

        if (null == arrayOfList || arrayOfList.size() == 0) {
            showToast("No data found from web!!!");
            MainActivity.this.finish();
        } else {

            // check data...
            /*
             * for (int i = 0; i < arrayOfList.size(); i++) { Item item =
             * arrayOfList.get(i); System.out.println(item.getId());
             * System.out.println(item.getTitle());
             * System.out.println(item.getDesc());
             * System.out.println(item.getPubdate());
             * System.out.println(item.getLink()); }
             */

            setAdapterToListview();

        }

    }
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    Item item = arrayOfList.get(position);
    Intent intent = new Intent(MainActivity.this, DetailActivity.class);
    intent.putExtra("url", item.getLink());
    intent.putExtra("title", item.getTitle());
    intent.putExtra("desc", item.getDesc());
    startActivity(intent);
}

public void setAdapterToListview() {
    NewsRowAdapter objAdapter = new NewsRowAdapter(MainActivity.this,
            R.layout.row, arrayOfList);
    listView.setAdapter(objAdapter);
}

public void showToast(String msg) {

}}

片段

public class PagesFragment extends Fragment {

public PagesFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_pages, container, false);

    return rootView;
}}

谢谢大家:)

1 个答案:

答案 0 :(得分:0)

我不知道你刚才问的是什么,但通过查看代码并阅读你所写的内容,你的逻辑并不正确。您应该在活动中使用滑动菜单代码,因为它在应用程序的多个部分之间是通用的。

实现滑动菜单的方式取决于您,它可以位于活动布局中,也可以只是同一活动中的静态片段容器。

您的Feed阅读器应该是片段,因为它可以重复使用并在您想要的地方使用。片段背后的想法是,它们是屏幕的“部分”,可以在活动的任何地方使用,并且应该是自给自足的,这意味着无论你放置那个片段,它应该只是工作并做任何他想做的事情,没有任何额外的编码。阅读有关Activity和Fragments生命周期的官方android文档,值得一读,它解释了入门所需的几乎所有内容:  http://developer.android.com/guide/components/fragments.html