2011-01-31 4 views
1

Я указал класс на основе другого в существующем проекте Android. Предполагается, что метод addRow() динамически добавляет строки в таблицу. При создании нового TextView для добавления в мою строку, а также при создании этой строки я должен указать «контекст». Текущий способ, пытающийся «getApplicationContext()» выдает исключение NullPointerException. Итак, откуда я должен получить этот контекст?getApplicationContext() выдает исключение при использовании

public class DistanceTableView extends ContactListActivity 
{ 
    public void addRow(LocationMessage locationMsg){ 
     View messageView = theInflater.inflate(R.layout.homepage, null); 
     TableLayout table = (TableLayout)messageView.findViewById(R.id.distanceTable); 

     TextView senderNameTextView = new TextView(getApplicationContext()); 
     senderNameTextView.setText(locationMsg.getSenderName()); 

     TableRow tr = new TableRow(getApplicationContext()); 
     tr.addView(distanceTextView); 
     table.addView(tr); 

     rows.addFirst(messageView); 
    } 
} 

Класс, который расширяет мое мнение:

public class ContactListActivity extends MapActivity implements 
     ConnectionListener {} 
+0

Как вы используете DistanceTableView? Кроме того, это может помочь, если мы увидим, как реализуется ContactListActivity. – McStretch

ответ

3

Я думаю, вы должны передать контекст в конструкторе класса.

+0

Это помогло. Я думал, что контекст всегда будет таким же, когда я расширяю этот класс. Спасибо – Lars

0

Попробуйте вместо этого:

TableRow tr = new TableRow(this);

+0

Это также исключает исключение – Lars

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

  • Нет связанных вопросов^_^