2013-04-18 3 views
0

После нажатия на любой элемент списка, я хочу начать новую деятельность. Когда я запускаю это через эмулятор, мое приложение падает каждый раз. Я уверен, что мой AndroidManifest тоже прав. Любая помощь оценивается.Сбой приложения для Android при переключении активности

public static class SectionFragment extends ListFragment { 
    /** 
    * The fragment argument representing the section number for this 
    * fragment. 
    */ 
    public static final String ARG_SECTION_NUMBER = "section_number"; 
    private String dataArrayOne[]; 
    private String dataArrayTwo[]; 

    public SectionFragment() { 
     dataArrayOne = new String[] { 
       "Steven's Portfolio", 
       "Sean's Portfolio", 
       "Logan's Portfolio", 
     }; 

     dataArrayTwo = new String[] { 
       "GOOG", 
       "YHOO", 
       "AAPL", 
       "MSFT" 
     }; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     switch(getArguments().getInt(ARG_SECTION_NUMBER)) 
     { 
     case 0: 
      ListAdapter listAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, dataArrayOne); 
      setListAdapter(listAdapter); 
      break; 
     case 1: 
      ListAdapter listAdapter1 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, dataArrayTwo); 
      setListAdapter(listAdapter1); 
     } 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_main_dummy, container, false); 
    } 

    @Override 
    public void onListItemClick(ListView list, View v, int position, long id) 
    { 
     Toast.makeText(getActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); 

     Intent intent = new Intent(getActivity(), Portfolio_Select.class); 
     intent.putExtra("USERNAME", getListView().getItemAtPosition(position).toString()); 
     startActivity(intent); 

    } 

AndroidManifest.xml

<activity 
     android:name=".Portfolio_Select" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity> 

Portfolio_Select Код

public class Portfolio_Select extends Activity { 

    // variables go here 

    TextView display; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(com.example.stockticker.R.layout.activity_main); 



     display.setText("Stocks go here!"); 


    } 


} 
+1

Опубликовать трассировку стека ошибки, которую вы получаете - ее следует распечатать до логарифма. –

+1

Дисплей TextView пуст, поэтому вы получаете исключение NullPointerException – Mike

ответ

2
TextView display; 

объявлена, но она всегда ссылается null так findViewById() не используется, чтобы дать ему что-нибудь еще.

Это означает, что, когда

display.setText("Stocks go here!"); 

называется, вы получите NPE.

Так используйте убедитесь, что у вас есть TextView в R.layout.activity_main с идентификатором, а затем использовать findViewById() дать display что TextView ссылка

setContentView(com.example.stockticker.R.layout.activity_main); 

display = (TextView) findViewById (R.id.your_text_view_id); 

display.setText("Stocks go here!"); 

Если есть какие-либо другие вопросы, добавить трассировки стека на ваш вопрос, поэтому нет никаких других угадываний.

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