snowman

مشکل در فراخوانی اکتیویتی مربوطه

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

سلام

یه برنامه کتاب الکترونیکی نوشتم که همه چیش درست کار میکنه فقط تو قسمت جستجوش گیر کردم. تو برنامه از sqlite برای دیتابیس استفاده کردم که شامل یه table هست .برنامه 4 قسمت داره که واسه هر قسمت یه اکتیویتی ساختم که با استفاده از لیست ویو اطلاعاتو نشون میده . تو قسمت جستجو نمیتونم آیتم رو به اکتیویتی مورد نظر پاس بدم .نمیدونم اصلا امکانش هست یا نه راستش این اولین برنامم هستش ممنون میشم راهنماییم کنیید.

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.HashMap;
import java.util.List;

import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;

public class search extends AppCompatActivity
{
    private DatabaseHandler db;

    private ListView resultListView;

    private List<HashMap<String , Object>> resultBooks;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);

        getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

        resultListView = (ListView) findViewById(R.id.resultListView);

        db = new DatabaseHandler( getBaseContext() );

        db.open();

        if( db.getScreenState() == 1 ) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }

        db.close();
    }

    public void onBtnFindClick( View v )
    {
        resultListView.setAdapter(null);

        RadioGroup rGroup = (RadioGroup) findViewById(R.id.rgItems);

        int selected_item_id = rGroup.getCheckedRadioButtonId();

        RadioButton rbTitle = (RadioButton) findViewById(R.id.rbSearchByTitle);
        RadioButton rbContent = (RadioButton) findViewById(R.id.rbSearchByContent);

        String search_by = "";

        if( selected_item_id == rbTitle.getId() ) {
            search_by = "title";
        } else if( selected_item_id == rbContent.getId() ) {
            search_by = "content";
        }

        EditText etSearchKey = (EditText) findViewById(R.id.txtSearchKey);

        if( etSearchKey.getText().length() < 1 )
        {
            Toast.makeText(
                    getBaseContext() , getString(R.string.search_error_enter_text) ,
                    Toast.LENGTH_SHORT ).show();

            return;
        }

        String key = etSearchKey.getText().toString().trim();

        String[] keys = key.split("\\s+");

        String query = search_by + " LIKE '%" + keys[0] + "%'";

        StringBuilder sb = new StringBuilder();

        for( int i = 1; i < keys.length; i ++ )
        {
            sb.append( " OR " + search_by + " LIKE '%" + keys[i] + "%'" );
        }

        query = query + sb.toString();

        /* title LIKE '%ali%' OR title LIKE '%reza%' OR ... */

        showResultOfSearch(query);

    }


    public void showResultOfSearch(final String query )
    {
        db.open();

        resultBooks = db.getTableOfResultsOfSearch( query );


        db.close();

        if( resultBooks.size() < 1 )
        {
            Toast.makeText(
                    getBaseContext() , getString(R.string.search_error_not_found) ,
                    Toast.LENGTH_SHORT ).show();

            return ;
        }

        String[] from = { "title"  , "fav_flag" , "see_flag" };

        int[] to = { R.id.txtTitle  , R.id.setFav , R.id.setSee };

        SimpleAdapter adb = new SimpleAdapter(
                getBaseContext() , resultBooks ,
                R.layout.tbl_content_list_row , from , to
        );

        resultListView.setAdapter(adb);

        resultListView.setOnItemClickListener(
                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id)
                    {
                            Intent i = new Intent(getBaseContext(), book_content4.class);

                            String my_id = resultBooks.get(position).get("id").toString();


                            i.putExtra("id", my_id);

                            startActivity(i);


                        overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
                    }
                }
        );


    }

    protected void attachBaseContext(Context newBase)
    {
        super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
    }

}

 

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


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

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط shervin soori
      با سلام خدمت دوستان 
      دوستان میشه راهنمایی بفرمایید که چطور می تونم الرت دیالوگ سفارشی که فایلش رو ضمیمه کردم ایجاد کنم.
      ممنون

    • توسط cnankh
      سلام ، من هر پروژه ای که با اندروید استودیو ازش خروجی میگیرم ، فقط و فقط روی گوشی هایی که 7.1.1 هستن ران میشه ، درحالی ک موقع ساخت پروژه پایین ترین لول api هم انتخاب میکنم ، یعنی با هر نوع api که فکرشو کنین امتحان کردم اما بازم نتیجه نداد ، کسی میدونه مشکل کجاس؟
    • توسط مهندس
      سلام.
      نرم افزاری که تراکنش داره
      و تو بازار بره
      ایا پورسانت میگیره و واریزیش چطوره؟؟
      ایا میشه نرم افزارو مستقیم به بانک خودم متصل بدم؟؟
    • توسط saeed_sh


       
      سلام دوستان وقت بخیر
      من برنامه نویس مبتدی اندروید هستم
      میخوام یه صفحه مثل همین گیف رو که تهیه کردم رو درست کنم اما نمیدونم از کجا شروع کنم و از چه روش هایی استفاده کنم
      خودم فک میکنم باید با  custom listView اینکارو انجام بدم اما چون میخوام امکاناتی مثل ستاره دار کردن یا share کردن رو بهش اضافه کنم فک میکنم خیلی سنگین میشه
      راه ساده تری واسه ساختنش نیست ؟
      اگه میشه یکم توضیح بدین ومسیر ساختشو بگین تا یکم روش ساختش دستم بیاد (در ضمن اهنگ هایی  ک میخوام پخش شه داخل خود برنامه میخوام قرار بدم )
      ممنون
    • توسط djsaeedkhan
      سلام. وقت بخیر.
      من یه برنامه اندروید درست کردم و داخلش با alarm-manager قرار دادم که یه کاری هر مثلا1 ساعت یکبار انجام بشه. الان درست کار میکنه و حتی اگر موبایل روشن خاموش بشه بازم کار میکنه.
      ولی اگر کاربر برنامه هایی که حافظه رم رو پاک میکنن(برنامه های غیرضروری یا باز) مثلا (Clean Master- Space Cleaner & Antivirus) یا اگر از تنظیمات رم گزینه پاک کردن، اجرا کنه  alarm-manager دیگه کار نمیکنه و تا برنامه دوباره باز نشه شروع به کار نمیشه.
      راهی هست که بشه این مشکل رو حل کرد باسپاس
       
      Intent alarmIntent = new Intent(getActivity(), ReceiverUpdateData.class); AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), Integer.parseInt(newValue.toString())*60*1000, PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0));  

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل