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));
    }

}

 

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


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

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

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

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

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


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

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

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


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