2012-10-15 71 views
0

我想在android中创建一系列数字,如pascal三角形。我必须在android中执行。我有tio动态创建textViews并为其分配行和列值。在这里张贴我的代码。创建动态文本视图

btnShow.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) 
     { 
      LinearLayout linearLayout=new LinearLayout(getApplicationContext()); 
      Log.d("outside","for"); 

      List<TextView> Rows = new ArrayList<TextView>(row); 
      List<TextView> OuterColumns= new ArrayList<TextView>(col); 
      List<TextView> InnerColumns = new ArrayList<TextView>(col); 

      int nor=Integer.parseInt(IEdit.getText().toString()); 

      for(row=1;row<=nor;row++) 
      { 
       Log.d("before","text"); 
       /*LayoutParams lp = new LayoutParams(
          LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);*/ 


       text_rows = new TextView(getApplicationContext()); 
       text_rows.setText(String.valueOf(row)); 
       Log.d("Inside","rows"); 
       Log.i("EditText","Number"+nor); 

       for(col=1;col<row-1;col++) 
       Log.d("Inside","col"); 
       text_cols=new TextView(getApplicationContext()); 
       text_cols.setText(String.valueOf(col)); 


       for(col=row-1;col>=row;col--) 
       text_cols2=new TextView(getApplicationContext()); 
       text_cols2.setText(String.valueOf(col)); 


       linearLayout.addView(text_rows); 
       linearLayout.addView(text_cols); 
       linearLayout.addView(text_cols2); 

       Rows.add(text_rows); 
       OuterColumns.add(text_cols); 
       InnerColumns.add(text_cols2); 


      } 

该程序在打印内部行语句后给出空指针异常而崩溃。我尝试了很多方式来创建textViews数组,在循环内部独立创建它们并添加它们。但是在任何情况下,我都会得到nullPointerException。作为Android的新手,我无法弄清楚为什么会发生这种情况?请帮我..谢谢提前

我甚至张贴我的logcat:

10-15 12:57:18.199: W/dalvikvm(1209): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
10-15 12:57:18.219: E/AndroidRuntime(1209): FATAL EXCEPTION: main 
10-15 12:57:18.219: E/AndroidRuntime(1209): java.lang.NullPointerException 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at com.example.pyramid_of_numbers.MainActivity$1.onClick(MainActivity.java:66) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.view.View.performClick(View.java:2408) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.view.View$PerformClick.run(View.java:8816) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.os.Handler.handleCallback(Handler.java:587) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.os.Looper.loop(Looper.java:123) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at java.lang.reflect.Method.invoke(Method.java:521) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-15 12:57:18.219: E/AndroidRuntime(1209):  at dalvik.system.NativeStart.main(Native Method) 
+0

change line'text_cols = new TextView(getApplicationContext());'with'text_cols = new TextView(yourActivityName.this);' –

+0

感谢您的回复。但它再次崩溃,具有相同的nullPointerException。请参阅编辑的问题。我甚至发布了我的logcat。谢谢.. – Priety

+0

尝试getBaseContext()而不是getApplicationContext() – Syn3sthete

回答

0

我想你应该取消注释的LayoutParams并使用它。