0

У меня возникли проблемы с созданием TextView динамически внутри моего настраиваемого ArrayAdapter. Я предполагаю, что это имеет какое-то отношение к раздутому макету, но я не могу найти подобный случай где угодно.NullPointerException при создании TextView динамически внутри настраиваемого ArrayAdapter

я NPE на этой линии:

likers[position] = new TextView(context); 

я был бы очень благодарен за предложение.

пользовательских ArrayAdapter:

public class FeedGridViewAdapter extends ArrayAdapter<FeedItemsSetter> { 
    private Context context; 
    private int layoutResourceId; 
    private ArrayList<FeedItemsSetter> data = new ArrayList<FeedItemsSetter>(); 
    private TextView locationName; 
    private ImageView image; 
    private ImageView feedUserImage; 
    private TextView cityName; 
    private TextView userInfo; 
    private TextView[] likers; 
    private String[] separatedDire; 

    public FeedGridViewAdapter(Context context, ArrayList<FeedItemsSetter> data) { 
     super(context, android.R.id.content, data); 
     this.context = context; 
     this.data = data; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater vi = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = vi.inflate(R.layout.feed_grid, null); 

      FeedItemsSetter item = data.get(position); 

      locationName = (TextView) view.findViewById(R.id.locName); 
      locationName.setText(item.getTitle()); 

      cityName = (TextView) view.findViewById(R.id.cityName); 
      cityName.setText(item.getCategory()); 

      userInfo = (TextView) view.findViewById(R.id.feedUserName); 
      userInfo.setText(item.getUser()); 

      feedUserImage = (ImageView) view.findViewById(R.id.feedUserImage); 
      Picasso.with(context) 
      .load("https://graph.facebook.com/" + item.getUserId() + "/picture?type=large") 
      .placeholder(R.drawable.placeholder) 
      .error(R.drawable.ic_launcher) 
      .transform(new RoundedTransformation(90, 4)) 
      .resize(100, 100)   
      .centerCrop() 
      .into(feedUserImage); 

      image = (ImageView) view.findViewById(R.id.image);   
      Picasso.with(context).load("http://www.edmondvarga.com/gastrolove/uploads/" + item.getImage()) 
      .into(image); 

      separatedDire = item.getLiker().split(","); 

      LinearLayout layout = (LinearLayout) view.findViewById(R.id.likerNames); 

      likers[position] = new TextView(context); // <----- EXCEPTION AT THIS LINE 

      likers[position].setText(separatedDire[0] + ", "); 
      likers[position].setTextColor(Color.parseColor("#d52e2e")); 
      likers[position].setTypeface(null, Typeface.BOLD_ITALIC); 
      likers[position].setTextSize(13);     

      layout.addView(likers[position]); 

      likers[position].setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) {        
        Intent in= new Intent(context, UserProfile.class); 
        in.putExtra("user", separatedDire[0]); 
        in.putExtra("userId", separatedDire[1]); 
        context.startActivity(in);        
       } 

      }); 



     return view; 
    } 
} 

12-12 16: 55: 38,056: Е/AndroidRuntime (28749): неустранимые: Основной 12-12 16: 55: 38,056: Е/AndroidRuntime (28749): Процесс: com.fideli, PID: 28749 12-12 16: 55: 38.056: E/AndroidRuntime (28749): java.lang.NullPointerException 12-12 16: 55: 38.056: E/AndroidRuntime (28749)): at com.fideli.userimages.FeedGridViewAdapter.getView (FeedGridViewAdapter.java:78) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): a т com.fideli.userimages.OffersFragmentActivity.setListViewHeightBasedOnChildren (OffersFragmentActivity.java:368) 12-12 16: 55: 38,056: Е/AndroidRuntime (28749): в com.fideli.userimages.OffersFragmentActivity.addToFeedGrid (OffersFragmentActivity.java : 354) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at com.fideli.userimages.OffersFragmentActivity.getFeed (OffersFragmentActivity.java:343) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at com.fideli.userimages.OffersFragmentActivity $ 4.onSuccess (OffersFragmentActivity.java:172) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at com.loopj.android.http .JsonHttpResponseHandler $ 1 $ 1.run (JsonHttpResponseHandler.java:126) 12-12 16: 55: 38.056 : E/AndroidRuntime (28749): at android.os.Handler.handleCallback (Handler.java:733) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at android.os.Handler.dispatchMessage (Handler.java:95) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at android.os.Looper.loop (Looper.java:146) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at android.app.ActivityThread.main (ActivityThread.java:5602) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at java.lang.reflect.Method. invokeNative (родной метод) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at java.lang.reflect.Method.invoke (Method.java:515) 12-12 16: 55: 38.056: Е/AndroidRuntime (28749): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1283) 12-12 16: 55: 38.056: E/AndroidRuntime (28749): at com.android.internal.os .ZygoteInit.main (ZygoteInit.java:1099) 12-12 16: 55: 38,056: E/AndroidRuntime (28749): в dalvik.system.NativeStart.main (Native Method)

+0

Возможный дубликат [Что такое Null Pointer Exception и как его исправить?] (Http: // stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Selvin

+1

Вы не инициализировали 'likers'. –

+0

Где мой logcat? –

ответ

0

Вы не инициализированный массив символов. Вы должны сделать что-то вроде:

 TextView[] likers = new TextView[4]; 

с количеством просмотров Вы хотите иметь внутри массива.

+0

вместо '4' =>' data.size() 'fx в конструкторе, но весь этот код является тупиком, так или иначе – Selvin

+0

unfortunatelly не работает, в основном я инициализировал представление раньше, чем: TextView likers [position] = new TextView (контекст), но я думаю, что он должен быть отброшен в View View. Я думаю, –

+0

Я знаю, что это не очень приятно, но мне нужно, чтобы OnClickListener называл имена людей, которые любят картинку. –

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