2012-01-23 3 views
0

Привет, Я создал один полностью xml-проект. теперь я сомневаюсь, что я храню все значение xml в списке массивов. Имя списка массива - mspec_List. как анализировать значение этого массива? Я получил все значения, используя парсер сакса. мое 1-е действие отображает некоторые изображения, если я нажимаю на эти изображения, я хочу показать какой-то абзац на следующем экране активности, чтобы этот абзац хранился в моем списке массивов. как показать этот пункт в моей следующей деятельности? Я создал новый класс, и я использую textview, также хочу показать это значение списка массива в этом текстовом представлении. пожалуйста, помогите мне .... `как разобрать мой arraylist значение одной деятельности для другой деятельности?

Я пытаюсь разобрать это значение arraylist, но он не работает, см. ниже код.

sdcardImages.setOnItemClickListener(new OnItemClickListener() { 


     public void onItemClick(AdapterView parent, View v, int position, long id) { 
      Intent intent = new Intent(ParxmlActivity.this, tabview.class); 
      intent.putStringArrayListExtra("numbers", mspec_List); 
      //intent.putExtra("name",model_List.get(position).name); 


      startActivity(intent); 

     } 
    }); 

полный исходный код:

package ml.ml; 

    import java.io.IOException; 
    import java.io.InputStream; 
    import java.util.ArrayList; 
    import javax.xml.parsers.SAXParser; 
    import javax.xml.parsers.SAXParserFactory; 
    import org.xml.sax.InputSource; 
    import org.xml.sax.XMLReader; 
    import android.app.Activity; 
    import android.content.Context; 
    import android.content.Intent; 
    import android.content.res.AssetManager; 
    import android.database.Cursor; 
    import android.graphics.Bitmap; 
    import android.graphics.BitmapFactory; 
    import android.graphics.drawable.Drawable; 
    import android.net.Uri; 
    import android.os.Bundle; 
    import android.os.Environment; 
    import android.provider.MediaStore; 
    import android.util.Log; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.view.View.OnClickListener; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.BaseAdapter; 
    import android.widget.Button; 
    import android.widget.GridView; 
    import android.widget.ImageView; 
    import android.widget.LinearLayout; 
    import android.widget.Spinner; 
    import android.widget.TextView; 
    import android.widget.AdapterView.OnItemClickListener; 

    public class ParxmlActivity extends Activity { 

     private String array_spinner[]; 
     private Cursor cursor; 
     private int columnIndex; 

     ParsedExampleDataSet parsedExampleDataSet= null; 

     ArrayList<String> hltag_List=new ArrayList<String>(); 
     ArrayList<Subchild>sltag_List=new ArrayList<Subchild>(); 

     ArrayList<String> name_List =new ArrayList<String>(); 
     ArrayList<String> path_List =new ArrayList<String>(); 
     ArrayList<String> mmimage_List = new ArrayList<String>(); 
     ArrayList<String> mname_List = new ArrayList<String>(); 
     ArrayList<String> mmimage = new ArrayList<String>(); 
     ArrayList<String> mvideo_List = new ArrayList<String>(); 
     ArrayList<schild> model_List =new ArrayList<schild>(); 
     ArrayList<String> mspec_List = new ArrayList<String>(); 

     Spinner spinner_hltag,spinner_sltag, spinner_path; 

     ArrayAdapter<String> adapter_hltag; 
     ArrayAdapter<String> adapter_sltag; 
     ArrayAdapter<String> adapter_path; 

     int hltagPos=0; 
     int sltagPos=0; 


     Object sdcard; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      GridView sdcardImages = (GridView) findViewById(R.id.sdcard); 
      spinner_hltag= (Spinner) findViewById(R.id.spinner1); 
      spinner_sltag = (Spinner) findViewById(R.id.spinner2); 

      sdcardImages.setOnItemClickListener(new OnItemClickListener() { 


       public void onItemClick(AdapterView parent, View v, int position, long id) { 
        Intent intent = new Intent(ParxmlActivity.this, tabview.class); 
        intent.putStringArrayListExtra("numbers", mspec_List); 
        //intent.putExtra("name",model_List.get(position).name); 


        startActivity(intent); 

       } 
      }); 

      sdcardImages.setAdapter(new ImageAdapter(this)); 

      String[] proj = {MediaStore.Images.Thumbnails._ID}; 

      cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
        proj, null, null, null); 


      columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 



      try { 
       /* Get a SAXParser from the SAXPArserFactory. */ 
       SAXParserFactory spf = SAXParserFactory.newInstance(); 
       SAXParser sp = spf.newSAXParser(); 

       /* Get the XMLReader of the SAXParser we created. */ 
       XMLReader xr = sp.getXMLReader(); 

       /* Create a new ContentHandler and apply it to the XML-Reader */ 
       ExampleHandler myExampleHandler = new ExampleHandler(); 
       xr.setContentHandler(myExampleHandler); 

       /* Parse the xml-data from our file. */ 
       xr.parse(new InputSource(getAssets().open("mafile.xml"))); 
       /* Parsing has finished. */ 

       parsedExampleDataSet =myExampleHandler. myParsedExampleDataSet; 

       for (int i = 0; i < parsedExampleDataSet.gethltag().size(); i++) { 
        Log.v("gethltag SIZE ", ""+parsedExampleDataSet.gethltag().size()); 
        hltag_List.add(parsedExampleDataSet.getHLTag().get(i)); 

       } 

       sltag_List = parsedExampleDataSet.getSLTag(hltag_List.get(hltagPos)); 


       for(int i = 0; i < sltag_List.size(); i++) { 
        name_List.add(sltag_List.get(i).name); 
        path_List.add(sltag_List.get(i).path); 



       } 
        model_List.clear();  
        model_List = sltag_List.get(sltagPos).model; 

        for(int j = 0; j<model_List.size(); j++){ 
         mmimage_List.addAll(model_List.get(j).imageList); 
         mname_List.add(model_List.get(j).name); 
         mvideo_List.addAll(model_List.get(j).videoList); 
         mmimage.add(model_List.get(j).mimage); 
         mspec_List.add(model_List.get(j).spec); 

        } 



       spinner_hltag.setAdapter(new MyAdapter(ParxmlActivity.this, R.layout.row, hltag_List)); 


       spinner_sltag.setAdapter(new MyAdapter1(ParxmlActivity.this, R.layout.row1,name_List)); 




      } catch (Exception e) { 

      } 


     } 


     private class ImageAdapter extends BaseAdapter { 

      private Context mContext; 
      //ArrayList<String> path_List =new ArrayList<String>(); 

      public ImageAdapter(Context c) { 
       mContext = c; 
      } 

      public int getCount() { 
       return path_List.size(); 
      } 

      public Object getItem(int position) { 
       return null; 
      } 

      public long getItemId(int position) { 
       return 0; 
      } 
      public View getView(int position, View convertView, ViewGroup parent) { 
       ImageView imageView; 
       if (convertView == null) { // if it's not recycled, initialize some attributes 
        imageView = new ImageView(mContext); 
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
        imageView.setPadding(8, 8, 8, 8); 
       } else { 
        imageView = (ImageView) convertView; 
       } 

       //Bitmap bitmap = BitmapFactory.decodeFile(path_List); 
       Bitmap bitmap = BitmapFactory.decodeFile(path_List.get(position)); 
       imageView.setImageBitmap(bitmap); 
       return imageView; 

      } 



     } 
     public class MyAdapter extends ArrayAdapter<String>{ 


      public MyAdapter(Context context, int textViewResourceId, ArrayList<String> hltagList) { 
       super(context, textViewResourceId, hltagList); 
      } 



      @Override 
      public View getDropDownView(int position, View convertView,ViewGroup parent) { 
       return getCustomView(position, convertView, parent); 
      } 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       return getCustomView(position, convertView, parent); 
      } 

      public View getCustomView(int position, View convertView, ViewGroup parent) { 

       LayoutInflater inflater=getLayoutInflater(); 
       View row=inflater.inflate(R.layout.row, parent, false); 

       TextView label=(TextView)row.findViewById(R.id.weekofday); 
       label.setText(hltag_List.get(position)); 



       ImageView icon=(ImageView)row.findViewById(R.id.icon); 

       Bitmap bitmap = BitmapFactory.decodeFile(path_List.get(position));; 
       icon.setImageBitmap(bitmap); 

       return row; 
      } 
     } 

     public class MyAdapter1 extends ArrayAdapter<String>{ 


      public MyAdapter1(Context context, int textViewResourceId, ArrayList<String> name_List) { 
       super(context, textViewResourceId, name_List); 
      } 



      @Override 
      public View getDropDownView(int position, View convertView,ViewGroup parent) { 
       return getCustomView(position, convertView, parent); 
      } 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       return getCustomView(position, convertView, parent); 
      } 

      public View getCustomView(int position, View convertView, ViewGroup parent) { 

       LayoutInflater inflater=getLayoutInflater(); 
       View row=inflater.inflate(R.layout.row, parent, false); 

       TextView sub=(TextView)row.findViewById(R.id.weekofday1); 
       sub.setText(name_List.get(position)); 

       ImageView icon=(ImageView)row.findViewById(R.id.icon); 

       Bitmap bitmap = BitmapFactory.decodeFile(path_List.get(position));; 
       icon.setImageBitmap(bitmap); 

       return row; 
      } 
     } 

    } 

`

+0

возможно дубликат [Передача ArrayLists в Android] (http://stackoverflow.com/questions/8653462/passing-arraylists-in-android) – Reno

ответ

3

Если у вас есть String ArrayList, вы можете просто передать его, используя intent.putStringArrayListExtra(name, value). Для получения дополнительной информации вы можете проверить мой ответ here.

+0

намерения .putStringArrayListExtra ("numbers", mspec_List); это правильно – balaji

+0

да, если у вас есть струнный аррайалист, это сделает для вас. –

+0

ok lalit poptani после чего я могу это сделать? теперь я проанализировал строковое значение одной активности для другой активности. Я использую также представление табуляции 3tabview? я хочу показать свой текстовый вид на экране просмотра 1-й вкладки, чтобы добавить один текстовый вид в свой XML-файл после того, что я могу сделать? научите меня .... это моя ссылка на полный код ссылки. http://paste.org/44196 2. http://paste.org/44195 – balaji

0

Вы можете сделать model_List статичным.

+0

моего model_List динамического degratnik – balaji

1

tabview.class

Intent i = getIntent(); 
arrlist = i.getStringArrayListExtra("name"); 
+0

lntathep см. мой код, этот мой исходный код tabview.class: http://paste.org/44196 У меня есть 3 tabview. Я хочу показать это значение arraylist в моем первом представлении, что ссылка на исходный код ссылки: http://paste.org/ 44195, пожалуйста, помогите мне, я запутался в этой концепции – balaji

+0

это уже работает? – Intathep

+0

@lntathep это не работает? действительно, я запутался .... lntathep sir ... – balaji

Смежные вопросы