barshahi

مشکل در رویداد کلیک لیست ویو

4 ارسال در این موضوع قرار دارد

دوستان من از لیست فرگمنت استفاده کردم ، مشکلی که هست اینه که رویداد کلیک لیست فراخوانی نمیشه!!!:huh:

اینم کد کلاسمه:

[shcode=java]

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.List;

import info.androidhive.slidingmenu.adapter.*;

import info.androidhive.slidingmenu.database.*;

import info.androidhive.slidingmenu.R;

import android.app.Fragment;

import android.app.FragmentManager;

import android.app.ListFragment;

import android.content.Context;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.graphics.Typeface;

import android.os.Bundle;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.view.View.OnClickListener;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class ListPages extends ListFragment {

    MainActivity objMain;

    private Fragment fragment = null;

    private TextView back;

    DBAdapter db;

    List listSt;

    List listSp;

    List listIn;

    Student student;

    Industrial industrial;

    Sped sped;

    ListView lst;

    Context c;

    Editor editor;

    int size;

    String name;

    SharedPreferences share, share_pos;

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

            Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        View rootView = inflater

                .inflate(R.layout.list_pagess, container, false);

        c = rootView.getContext();

        Typeface bzar = Typeface.createFromAsset(getActivity().getAssets(),

                "font/BZar.ttf");

        back = (TextView) rootView.findViewById(R.id.button1);

        back.setTypeface(bzar);

        Animation animation3 = AnimationUtils.loadAnimation(

                rootView.getContext(), R.anim.myanimation);

        back.startAnimation(animation3);

        back.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                objMain = new MainActivity();

                fragment = new HomeFragment();

                FragmentManager fragmentManager = getFragmentManager();

                fragmentManager.beginTransaction()

                        .replace(R.id.frame_container, fragment).commit();

                getActivity().getActionBar().setTitle("دوره های SPDE");

            }

        });

        return rootView;

    }

    @Override

    public void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        db = new DBAdapter(getActivity().getBaseContext());

        c = getActivity().getBaseContext();

        size = 0;

        db.open();

        share_pos = getActivity().getSharedPreferences("listpos",

                c.MODE_PRIVATE);

        editor = share_pos.edit();

        share = getActivity().getSharedPreferences("listcontent",

                c.MODE_PRIVATE);

        name = share.getString("name", "");

        if (name.equals("sped")) {

            listSp = db.getAllSped();

            size = listSp.size();

            refreshDisplaySp();

        } else if (name.equals("industrial")) {

            listIn = db.getAllIndustrial();

            size = listIn.size();

            refreshDisplayIn();

        } else {

            listSt = db.getAllStudent();

            size = listSt.size();

            refreshDisplaySt();

        }

        if (size < 2) {

            String destPath = "/data/data/" + c.getPackageName() + "/databases";

            try {

                CopyDB(c.getAssets().open("dbispse"), new FileOutputStream(

                        destPath + "/dbispse"));

                Log.d("", "db copy shod");

                if (name.equals("sped")) {

                    listSp = db.getAllSped();

                    refreshDisplaySp();

                } else if (name.equals("industrial")) {

                    listIn = db.getAllIndustrial();

                    refreshDisplayIn();

                } else {

                    listSt = db.getAllStudent();

                    refreshDisplaySt();

                }

                db.close();

            } catch (FileNotFoundException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            } catch (IOException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

        }

        db.close();

    }

    @Override

    public void onListItemClick(ListView l, View v, int position, long id) {

        // TODO Auto-generated method stub

       

        Log.d("list OnClick is position :", "" + position);

        editor.putInt("position", position);

        editor.commit();

        if (name.equals("sped")) {

            sped = listSp.get(position);

            Fragment fragment = new ContentFragment();

            FragmentManager fragmentManager = getFragmentManager();

            fragmentManager.beginTransaction()

                    .replace(R.id.frame_container, fragment).commit();

            getActivity().getActionBar().setTitle("جزئیات بیشتر");

        } else if (name.equals("industrial")) {

            industrial = listIn.get(position);

            Fragment fragment = new ContentFragment();

            FragmentManager fragmentManager = getFragmentManager();

            fragmentManager.beginTransaction()

                    .replace(R.id.frame_container, fragment).commit();

            getActivity().getActionBar().setTitle("جزئیات بیشتر");

        } else {

            student = listSt.get(position);

            Fragment fragment = new ContentFragment();

            FragmentManager fragmentManager = getFragmentManager();

            fragmentManager.beginTransaction()

                    .replace(R.id.frame_container, fragment).commit();

            getActivity().getActionBar().setTitle("جزئیات بیشتر");

        }

    }

    private void refreshDisplaySt() {

        ArrayAdapter adapter = new ListAdapterSt(c, listSt);

        setListAdapter(adapter);

    }

    private void refreshDisplaySp() {

        ArrayAdapter adapter = new ListAdapterSp(c, listSp);

        setListAdapter(adapter);

    }

    private void refreshDisplayIn() {

        ArrayAdapter adapter = new ListAdapterIn(c, listIn);

        setListAdapter(adapter);

    }

    public void CopyDB(InputStream inputStream, OutputStream outputStream)

            throws IOException {

        // ---copy 1K bytes at a time---

        byte[] buffer = new byte[1024];

        int length;

        while ((length = inputStream.read(buffer)) > 0) {

            outputStream.write(buffer, 0, length);

        }

        inputStream.close();

        outputStream.close();

    }

}

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

لطفا اگه کسی میدونه راهنمایی کنه کارم خیلی گیره!:(

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما باید در ListFragment  برای رویداد کلیک لیست از متد زیر استفاده کنید.

@Override
   public void onListItemClick(ListView l, View v, int position, long id) {
       // TODO Auto-generated method stub
       super.onListItemClick(l, v, position, id);
   }

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

ممنون از راهنماییتون اما این متد زمانی که لیست سفارشی باشد کار نمی کند!!:(

خوشبختانه راه حل رو پیدا کردم ، در واقع باید توی فایل xml  که برای لیست طراحی کردیم کد زیر رو بهش اضافه کنیم که رویداد کلیک کار کنه.:D

[shcode=xml]

android:descendantFocusability="blocksDescendants"[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری