انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با ارسال مقدار صحیح به اکتیویتی بعدی در جستجو

مشکل با ارسال مقدار صحیح به اکتیویتی بعدی در جستجو

#1
سلام
من از کد های زیر برای قسمت جستجو استفاده می کنم :
کد پی‌اچ‌پی:
package com.example.finaltest;

import java.util.ArrayList;
import java.util.HashMap;

import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.text.TextWatcher;
import android.view.View;

public class 
Search extends ActionBarActivity {

    
// List view
    
private ListView lv;
     
    
// Listview Adapter
    
ArrayAdapter<Stringadapter;
     
    
// Search EditText
    
EditText inputSearch;
     
     
    
// ArrayList for Listview
    
ArrayList<HashMap<StringString>> productList;

        @
Override
        
protected void onCreate(Bundle savedInstanceState) {
                
super.onCreate(savedInstanceState);
                
setContentView(R.layout.search);
               
                
// Listview Data
        
String products[] = getResources().getStringArray(R.array.search);
         
        
lv = (ListViewfindViewById(R.id.list_view);
        
inputSearch = (EditTextfindViewById(R.id.inputSearch);
         
        
// Adding items to listview
        
adapter = new ArrayAdapter<String>(thisR.layout.list_itemR.id.subject_nameproducts);
        
lv.setAdapter(adapter);
         
        
/**
         * Enabling Search Filter
         * */
        
inputSearch.addTextChangedListener(new TextWatcher() {
             
            @
Override
            
public void onTextChanged(CharSequence csint arg1int arg2int arg3) {
                
// When user changed the Text
                
Search.this.adapter.getFilter().filter(cs);  
            }
             
            @
Override
            
public void beforeTextChanged(CharSequence arg0int arg1int arg2,
                    
int arg3) {
                
// TODO Auto-generated method stub
                 
            
}
             
            @
Override
            
public void afterTextChanged(Editable arg0) {
                
// TODO Auto-generated method stub                          
            
}
        });
       
        
// after click
        
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {
                       
                final String item = lv.getItemAtPosition(position).toString();
                int total_number = 25;
                for(int x = 1; x < total_number+1; x = x+1) {
                        String SubjectName = "subject_" + String.valueOf(x);
                        int resID = getResources().getIdentifier(SubjectName, "string", getPackageName());
                        String subject = getResources().getString(resID);
                       
                        if(item.equals(subject)) {
                                String StringClass = "com.example.finaltest.Subject_" + String.valueOf(x);
                                Class<?null;
                                if(
StringClass != null) {
                                    try {
                                        
= Class.forName(StringClass);
                                    } catch (
ClassNotFoundException e) {
                                        
// TODO Auto-generated catch block
                                        
e.printStackTrace();
                                    }
                                }
                                
Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                                
String Subject_number String.valueOf(position+1);
                                
i.putExtra("subject_number"Subject_number);
                                
startActivity(i); 
                        }
                }
               
            }

          });
        }
       
        @
Override
        
public void onResume() {
            
super.onResume();
            
adapter.notifyDataSetChanged();
        }

      
@
Override
public boolean onCreateOptionsMenu(Menu menu) {
    
// Inflate the menu; this adds items to the action bar if it is present.
    
getMenuInflater().inflate(R.menu.searchmenu);
    return 
true;
}

@
Override
public boolean onOptionsItemSelected(MenuItem item) {
    
// Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    
int id item.getItemId();
    if (
id == R.id.action_settings) {
        return 
true;
    }
    return 
super.onOptionsItemSelected(item);
}

برنامه من برای نمایش محتوا ها کلا یه اکتیویتی داره و بر اساس مقدار i ارسالی به اکتیویتی بعدی محتوا رو میسازه. مشکلی که من دارم اینه که تو فرم جستجو وقتی کاربر چیزی رو جستجو می کنه جایگاه اون عنوان تغییر می کنه و وقتی روش کلیک میکنی که بری اکتیویتی بعدی ، محتوای اشتباهی رو نمایش میده
چه تغییری باید در کد ها بدم تا با تغییر جایگاه عناوین همچنان مقدار اولیه صحیح رو به اکتیویتی بعدی ارسال کنه؟
 

 
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان