2013-04-18 59 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

发布您正在收到的错误的堆栈跟踪 - 它应该打印到logcat。 –

+1

显示TextView为空,所以你得到NullPointerException – Mike

回答

2
TextView display; 

声明,但它总是引用null因为findViewById()还没有被用来给它任何东西来保存。

这意味着当

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

被调用时,你会得到一个NPE。

因此,使用确保你在R.layout.activity_mainTextView有一个ID,然后使用findViewById()displayTextView参考

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

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

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

如果有任何其他问题,堆栈跟踪添加到您的问题,所以没有其他猜测涉及。

相关问题