2015-09-21 4 views
0

У меня есть специальный класс, настраиваемый адаптер для моего ListView, и мне нужно получить некоторые данные из другого Activity. Но моя реализация метода GetIntent()GetExtras() не работает. Что не так?Данные между действиями

Вот мой пользовательский код адаптера:

public class CustomAdapter extends ArrayAdapter<String> { 
    int myColor,myWidth; 
    private final Context context; 
    private final String[] values; 

    public CustomAdapter(Context context, String[] values) { 
     super(context, R.layout.list_item, values); 
     this.context = context; 
     this.values = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // return super.getView(position, convertView, parent); 
     LayoutInflater inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View rowView = inflater.inflate(R.layout.list_item, parent, false); 
     TextView textView = (TextView) rowView.findViewById(R.id.ColorTextButton); 
     ImageView imageView = (ImageView) rowView.findViewById(R.id.imageViewIcon); 
     TextView textView1 = (TextView) rowView.findViewById(R.id.HelpButton); 
     textView.setText(values[position]); 

     String s = values[position]; 
     System.out.println(s); 
     if (s.equals("Monday")) { 
      imageView.setImageResource(R.drawable.arrow2); 
      textView.setBackgroundColor(Color.YELLOW); 
     } else if (s.equals("Wednesday")) { 
      imageView.setImageResource(R.drawable.arrow2); 
      textView1.setBackgroundColor(Color.GREEN); 
     } else if (s.equals("Friday")) { 
      imageView.setImageResource(R.drawable.arrow2); 
     } else { 
      imageView.setImageResource(R.drawable.arrow); 
     } 
     return rowView; 
    } 
} 
+0

использовать recyclerview вместо ListView в первом. Во-вторых, между адаптером и активностью нет намерения, поскольку я знаю –

+0

Что означает «не работает»? – ChiefTwoPencils

+0

Невозможно разрешить метод getIntent() – Mihailenko

ответ

0

Если вы хотите, чтобы данные были, доступными из нескольких действий, которые Вы должны думать о использовании одноэлементного класса данных. поэтому вместо того, чтобы пытаться получить передать данные с вашего адаптера второй активности как adaper и активность использовать тот же метод, чтобы получить класс данных

public class DataProvider { 
private static DataProvider instance; 


    public static DataProvider getInstance() 
    { 
     if(null == instance){instance = new DataProvider();} 
     return instnace; 
    } 

    public String[] getObjects(){ 
     return this.myStringArray; 
    } 

    // add more methods in here to retrieve and count your data as you need 
} 

то в вашей деятельности вы можете

// somewhere 
myStingArrayInMyActivity = DataProvider.getInstance().getObjects() 

также вы переходником вы можете сделать

public class CustomAdapter extends ArrayAdapter<String> { 
int myColor,myWidth; 
private final Context context; 
private final String[] values; 

public CustomAdapter(Context context, String[] values) { 
    super(context, R.layout.list_item, values); 
    this.context = context; 
    this.values = values; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
// your code 
textView.setText(DataProvider.getInstance.getObjects[position]); 

String s = DataProvider.getInstance.getObjects[position]; 
/// your code 
return rowView; 
    } 
} 
+0

Несколько вещей: пожалуйста, отформатируйте свой код, даже если OP нет; это вид списка с адаптером, возможно, более подходящим является ArrayList; и вам не хватает массива в singleton. – ChiefTwoPencils