简体   繁体   中英

How TO Change Activity To Fragment

I want To change my Activity to Fragment I tried hard but I am unable to Change my Activity To Fragment. Can Anyone Please Tell me How to do this? Where To Edit I am new On Android. please tell me And Thanks In Advance

this Is My Activity:

import android.app.Activity;

   import android.app.ProgressDialog;
   import android.content.Context;
  import android.content.Intent;
  import android.content.SharedPreferences;
  import android.content.SharedPreferences.Editor;
   import android.os.Bundle;
  import android.os.StrictMode;

import android.view.View;
import android.view.View.OnClickListener;
 import android.view.LayoutInflater;
import android.view.ViewGroup;
 import android.view.Window;
 import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
 import android.widget.Toast;

 import com.example.phonebook.models.UserModel;
import com.example.phonebook.services.ImageLoader;

public class Welcome extends Activity {
private ProgressDialog pDialog;
Button editprofile;
JSONParser jsonParser = new JSONParser();

ImageView Image;
UserModel user = (UserModel) getIntent().getSerializableExtra("User");
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
    .detectDiskReads().detectDiskWrites().detectNetwork()
    .penaltyLog().build());
   setContentView(R.layout.welcome);


    requestWindowFeature(Window.FEATURE_NO_TITLE);

     user = (UserModel) getIntent().getSerializableExtra("User");
Button editprofile = (Button)findViewById(R.id.btn_edit);
    ImageView image = (ImageView)findViewById(R.id.imageView1);
    TextView userfullname = (TextView) findViewById(R.id.userfullname);
    TextView tv_age = (TextView) findViewById(R.id.age);
    TextView tv_gender = (TextView) findViewById(R.id.gender);
    TextView tv_intrseted = (TextView) findViewById(R.id.intrestedin);


    int loader = R.drawable.loader;

    String UserfullName = user.getUser_Full_Name();
    String image_url = user.getUser_Image();
    String Age = user.getUser_Age();
    String Gender = user.getGender();
    String IntrestedIn = user.getIntrest_In();
    userfullname.setText(UserfullName);
    tv_age.setText(Age);
    tv_gender.setText(Gender);
    tv_intrseted.setText(IntrestedIn);
    Button logout=(Button)findViewById(R.id.logout);
    logout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            SharedPreferences sharedPreferences =getSharedPreferences(MainActivity.MyLOGINDATA, Context.MODE_PRIVATE);

                      Editor editor = sharedPreferences.edit();
                      editor.clear();
                      editor.commit();
                      moveTaskToBack(true); 
                      Intent i=new Intent(getApplicationContext(),MainActivity.class);
                      startActivity(i);
                      finish();

        }
    });

    editprofile.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent e = new Intent(getApplicationContext(),
                    EditProfile.class);
            e.putExtra("userInfo", user);
            finish();
            startActivity(e);

        }
    });

    // ImageLoader class instance
    ImageLoader imgLoader = new ImageLoader(getApplicationContext(),
            Welcome.this);

    image.setTag(image_url);

// whenever you want to load an image from url
// call DisplayImage function
// url - image url to load
// loader - loader image, will be displayed before getting image
// image - ImageView 
    imgLoader.DisplayImage(image_url, Welcome.this, image);
}

}

Just understand some steps then you can easily convert a Activity to Fragment now and also in future..:

First of all instead of extending Activity ,just extend Fragment ..

Ex: public class Welcome extends Fragment{

Then override onCreateView() ..

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

Then inflate the layout through LayoutInflater and asign to a View for further use in subview inilialization..

like: View mView = inflater.inflate(R.layout.welcome, null);

Then initialize all sub views with the help of main view..like:

 ImageView image = (ImageView) mView.findViewById(R.id.imageView1);
 TextView userfullname = (TextView) mView.findViewById(R.id.userfullname);

Now do all your tasks same like activity here..

The important thing.. Use getActivity() in the place of context ..

Ex: Toast.maketext(getActivity(), "...", Toast.LENGTH_LONG).show();

For more information ,just visit Fragment in developers block..

Thank you

Changing an Activity class to Fragment class requires extending Fragment super class instead of Activity , in addition to implementing some Callback methods that are specific to fragments, like: OnCreateView() , OnActivityCreated() ...
Fragments can be started and initiated either programmatically by another fragments, activities or using fragment tag in the XML layout from within another fragment or activity. Please check the fragment guide on android developers site:
http://developer.android.com/training/basics/fragments/creating.html
OR
http://developer.android.com/guide/components/fragments.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM