J'ai créé une page Activité sur cette page Fragment et j'y ai apporté les modifications nécessaires, mais cette erreur est survenue, mais aidez-moi à m'en sortir. J'ai une activité qui a deux fragments et celui-ci est l'un de ces deux. Et bien que ce soit une vue de liste si je clique dessus la deuxième est l'affichage de l'autre côté de la même page d'activité. C'est toute la fonctionnalité principale que je veux faire.com.handmark.pulltorefresh.library.PullToRefreshListView ne peut pas être converti en android.widget.ListView
public class FreagmentMainCategory extends Fragment{
private LinearLayout llLayoutmain;
private FragmentActivity faActivitymain;
private ListView lstCategoryList;
private SelectCategoryTask mAuthTask = null;
private View mServiceStatusView;
CategoryDetails mainCategory;
private categoryListAdapter adapterList;
static final int MENU_MANUAL_REFRESH = 0;
static final int MENU_DISABLE_SCROLL = 1;
static final int MENU_SET_MODE = 2;
static final int MENU_DEMO = 3;
private View lstListView;
private PullToRefreshListView mPullRefreshListView;
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//faActivitymain = (FragmentActivity) super.getActivity();
View view = inflater.inflate(R.layout.activity_fragment_main,container, false);
this.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
FontUtils.setCustomFont(getActivity().findViewById(R.id.mainView), getActivity().getAssets());
lstListView= view.findViewById(R.id.lstCategoryView);
mPullRefreshListView = (PullToRefreshListView)view.findViewById(R.id.lstCategory);
// Set a listener to be invoked when the list should be refreshed.
mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
String label = DateUtils.formatDateTime(getActivity().getApplicationContext(), System.currentTimeMillis(),
DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);
// Update the LastUpdatedLabel
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
// Do work to refresh the list here.
new GetDataTask().execute();
}
});
mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
}
});
lstListView=(View)view.findViewById(R.id.lstCategoryView);
lstCategoryList = (ListView)view.findViewById(R.id.lstCategory);//got error in this line
//lstCategoryList = (ListView) inflater.inflate(R.layout.activity_fragment_main, container, false);
lstCategoryList = mPullRefreshListView.getRefreshableView();
registerForContextMenu(lstCategoryList);
mServiceStatusView = view.findViewById(R.id.service_status);
//txtTitle=(TextView) getActivity().findViewById(R.id.serviceText);
//txtTitle.setText(getActivity().getResources().getString(R.string.title_select_category));
showProgress(true);
mAuthTask = new SelectCategoryTask();
mAuthTask.execute((Void) null);
lstCategoryList.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position,long arg3) {
Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
//bundle.putInt(key, value);
//Intent subCategoryIntent = new Intent(getActivity().getApplication(),FragmentSubCategory.class);
bundle.putString("MainCategoryId", mainCategory.masterinfo.get(position-1).maincatid);
bundle.putString("MainCategoryName", mainCategory.masterinfo.get(position-1).maincatname);
//subCategoryIntent.putExtra("MainCategoryId", mainCategory.masterinfo.get(position-1).maincatid);
//subCategoryIntent.putExtra("MainCategoryName", mainCategory.masterinfo.get(position-1).maincatname);
//getActivity().getApplication().startActivity(subCategoryIntent);
fragment.setArguments(bundle);
}
});
return view;
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getActivity().getMenuInflater().inflate(R.menu.activity_service, menu);
return true;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private void showProgress(final boolean show) {
// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
// for very easy animations. If available, use these APIs to fade-in
// the progress spinner.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
int shortAnimTime = getResources().getInteger(
android.R.integer.config_shortAnimTime);
mServiceStatusView.setVisibility(View.VISIBLE);
mServiceStatusView.animate().setDuration(shortAnimTime)
.alpha(show ? 1 : 0)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mServiceStatusView.setVisibility(show ? View.VISIBLE
: View.GONE);
}
});
lstListView.setVisibility(View.VISIBLE);
lstListView.animate().setDuration(shortAnimTime)
.alpha(show ? 0 : 1)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
lstCategoryList.setVisibility(show ? View.GONE
: View.VISIBLE);
}
});
} else {
// The ViewPropertyAnimator APIs are not available, so simply show
// and hide the relevant UI components.
mServiceStatusView.setVisibility(show ? View.VISIBLE : View.GONE);
lstListView.setVisibility(show ? View.GONE : View.VISIBLE);
}
}
public class GetDataTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
// Simulates a background job.
ServerAccess sa=new ServerAccess();
mainCategory=sa.GetMainCategory();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
if(mainCategory==null){
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.error_check_network), Toast.LENGTH_LONG).show();
lstCategoryList.setAdapter(null);
}else if(mainCategory.code.equals("MOB01")){
adapterList=new categoryListAdapter(getActivity().getApplicationContext(), mainCategory.masterinfo);
lstCategoryList.setAdapter(null);
}else if(mainCategory.code.equals("MOB02")){
lstCategoryList.setAdapter(null);
}else{
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.error_genric_error), Toast.LENGTH_LONG).show();
lstCategoryList.setAdapter(null);
}
// Call onRefreshComplete when the list has been refreshed.
mPullRefreshListView.onRefreshComplete();
super.onPostExecute(result);
}
}
public class SelectCategoryTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
ServerAccess sa=new ServerAccess();
mainCategory=sa.GetMainCategory();
return true;
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if(mainCategory==null){
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.error_check_network), Toast.LENGTH_LONG).show();
lstCategoryList.setAdapter(null);
}else if(mainCategory.code.equals("MOB01")){
adapterList=new categoryListAdapter(getActivity().getApplicationContext(), mainCategory.masterinfo);
lstCategoryList.setAdapter(adapterList);
}else if(mainCategory.code.equals("MOB02")){
lstCategoryList.setAdapter(null);
}else{
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.error_genric_error), Toast.LENGTH_LONG).show();
lstCategoryList.setAdapter(null);
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
showProgress(false);
}
}
class categoryListAdapter extends BaseAdapter {
List<Category> mainItems;
Context myContext;
public categoryListAdapter(Context context, List<Category> items) {
myContext = context;
mainItems = items;
}
public int getCount() {
return mainItems.size();
}
public Object getItem(int index) {
return mainItems.get(index);
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent ) {
// TODO Auto-generated method stub
RelativeLayout layout = new RelativeLayout(myContext);
TextView tv = new TextView(myContext);
tv.setText(mainItems.get(position).maincatname);
tv.setGravity(Gravity.LEFT);
tv.setTextSize(16);
tv.setPadding(20, 20, 0, 20);
tv.setTextColor(myContext.getResources().getColor(R.color.BlackColor));
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
layout.addView(tv,lp);
return layout;
}
}
}
Voici mon code xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg_main"
tools:context=".FreagmentMainCategory" >
<LinearLayout
android:id="@+id/lstCategoryView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/serviceHeaderBar"
android:orientation="vertical" >
<!-- The PullToRefreshListView replaces a standard ListView widget. -->
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/lstCategory"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="#19000000"
android:dividerHeight="4dp"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:smoothScrollbar="true" />
</LinearLayout>
<RelativeLayout
android:id="@+id/service_status"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/progress_bg"
android:orientation="vertical"
android:visibility="visible" >
<ProgressBar
android:id="@+id/loadingBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/service_status_message"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:tag="normal"
android:text="@string/title_please_wait"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/BlackColor"
android:textSize="@dimen/MainSize" />
</LinearLayout>
</RelativeLayout>
cherchez-vous à glisser pour actualiser comme nouvelle application gmail – Jinu
Monsieur j'ai eu quelques problèmes de fonctionnalité et je l'ai eu, btw merci beaucoup pour votre temps précieux pour moi .. :) – Sudhansu