2015-02-07 2 views
0

Прошу заранее. Я знаю, что это должно быть прямо. Совсем новичок с Android. Я создаю основное упражнение и пытаюсь вызвать другое действие с помощью намерения. Другая деятельность содержит просмотр списка. Я пытаюсь показать простые строки в представлении списка. Поэтому я думаю, что мне не нужно писать какие-либо результаты. Просто AdaptView должен работать нормально. Некоторый код, чтобы объяснить более, что я ДО выглядит следующим образом: Главная кнопка деятельности OnClick метод заключается в следующем:Null указатель в списке списка просмотров

public void manage(View view) { 
    Intent managerIntent; 
      managerIntent = new Intent(this,ShowActivity.class); 
    managerIntent.putExtra(FILE_URI, mediaStorageDir.getAbsolutePath()); 
    startActivity(managerIntent); 
} 

ShowActivity выглядит следующим образом:

public class ShowActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ArrayList<String> strings = new ArrayList<String>(); 
     Intent intent = getIntent(); 
     MyService sc = new MyService() 
     sc.fill(strings,intent); 

     final ArrayAdapter<String> ListObject = new ArrayAdapter<String>(ShowReceiptsActivity.this, 
       android.R.layout.simple_list_item_1, strings); 

     ListView listView = (ListView)findViewById(R.id.listView);// This line gives null pointer exception 
     listView.setAdapter(ListObject); 
     setContentView(R.layout.activity_show_receipts); 
    } 
} 

activity_show.xml выглядит следующим образом:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.receiptboss.manager.ShowReceiptsActivity"> 

<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.receiptboss.manager.ShowReceiptsActivity"/> 
</LinearLayout> 

Любая помощь будет принята с благодарностью.

+0

Вы попробовали решение ma? Помогло ли вам решить вашу проблему? –

ответ

1

Вы должны вызвать setContentView(R.layout.activity_show) в onCreate(Bundle saveInstanceState) методы в ShowActivity классе, как в коде ниже:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //Here is your missing method 
    // as param set R.layout.activity_show or R.layout.activity_show_receipts 
    //it is depend of layout xml name 
    setContentView(R.layout.activity_show) 
    .... 
} 

Вы должны установить макет в качестве представления содержимого в своей деятельности, прежде чем вы вызов метода findViewById(int) на вашей деятельности. Теперь вы называете этот метод последним - это неправильно.

+0

Большое спасибо. Его решение. Я знал, что это должно быть глупо. – shaun

+0

Я рад, что смогу помочь вам :) –

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