Reputation: 79
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);
}
}
Upvotes: 5
Views: 9060
Reputation: 588
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
Upvotes: 0
Reputation: 5150
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
Upvotes: 12