Reputation: 43
This is a sample of my code, I want make a new application, and I want copy code from my previous project, but I get an error.
HomeFragment.java (from Sliding Menu)
package com.example.sia;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class HomeFragment extends Fragment {
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
return rootView;
}
}
Account.java
package com.example.sia2;
import java.util.HashMap;
import org.json.JSONArray;
import android.os.Bundle;
import android.app.Activity;
import android.text.Html;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Account extends Activity {
Button logout;
SessionManager session;
TextView status;
JSONArray contacts = null;
String nim, name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_account);
session = new SessionManager(getApplicationContext());
Toast.makeText(getApplicationContext(),
"User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG)
.show();
session.checkLogin();
HashMap<String, String> user = session.getUserDetails();
name = user.get(SessionManager.KEY_NAME);
// id = user.get(SessionManager.KEY_ID);
TextView status = (TextView) findViewById(R.id.status);
status.setText(Html.fromHtml("Welcome,<b>" + name + "</b> "));
logout = (Button) findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
session.logoutUser();
finish();
}
});
}
}
I combine the code
package com.example.sia;
import java.util.HashMap;
import org.json.JSONArray;
import com.example.sia.R;
import com.example.sia.SessionManager;
import android.app.Fragment;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class HomeFragment extends Fragment {
Button logout;
SessionManager session;
TextView status;
JSONArray contacts = null;
String nim, name;
public HomeFragment(){}
@Override
/**public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_account);**/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
session = new SessionManager(getActivity().getApplicationContext());
Toast.makeText(getActivity().getApplicationContext(),"User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG).show();
session.checkLogin();
HashMap<String, String> user = session.getUserDetails();
name = user.get(SessionManager.KEY_NAME);
// id = user.get(SessionManager.KEY_ID);
TextView status = (TextView) getView().findViewById(R.id.status);
status.setText(Html.fromHtml("Welcome,<b>" + name + "</b> "));
logout = (Button) getView().findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
session.logoutUser();
getActivity().finish();
}
});
return rootView;
}
}
/*public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
return rootView;
}*/
I can launch the application, but when I open fragment_home.xml
, it is not responding
Thank you
Upvotes: 0
Views: 10400
Reputation: 43
solved :) Thank U
public class HomeFragment extends Fragment {
....
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
.....
.....
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
return rootView;
}
}
Upvotes: 0
Reputation: 4868
Before you go merging you should probably know how a Fragment is composed versus an activity. (You have a sample HomeFragment.java
!)
setContentView
method because you inflate your layout by overriding the onCreateView
method.findViewById
method, instead you find those references within onCreateView
by calling findViewById
on the View
you inflated.getApplicationContext()
can be replaced by getActivity().getApplicationContext()
Please read up on Fragments here: http://developer.android.com/guide/components/fragments.html
Upvotes: 0