package sample.helloworld;
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.dianping.app.MyApplication;
import com.dianping.loader.MyResources;
public class HelloFragment extends Fragment {
String name;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// MyResources manages the resources in specific package.
// Using a Class object to obtain an instance of MyResources.
// In this case, hello.xml is in the same package as HelloFragment class
MyResources res = MyResources.getResource(HelloFragment.class);
// Using MyResources.inflate() if you want to inflate some layout in
// this package.
return res.inflate(getActivity(), R.layout.hello, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
name = savedInstanceState.getString("name");
}
update();
view.findViewById(R.id.start_url).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// Start the PickerFragment by url mapping.
// (app://pickname is mapped to PickerFragment, defined
// in fragment.properties)
Intent i = new Intent(Intent.ACTION_VIEW, Uri
.parse(MyApplication.PRIMARY_SCHEME
+ "://pickname?selection=" + name));
// We need a result, the result will be callback in
// onActivityResult()
startActivityForResult(i, 1);
}
});
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("name", name);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
name = data == null ? null : data.getStringExtra("selection");
update();
}
}
private void update() {
TextView tv = (TextView) getView().findViewById(R.id.text_hello);
if (TextUtils.isEmpty(name)) {
tv.setText("Hello World!");
} else {
tv.setText("Hello " + name + "!");
}
}
}