使用setVisibility(View.VISIBLE)时android崩溃

使用setVisibility(View.VISIBLE)时android崩溃,android,Android,我似乎在以下方面遇到了应用程序崩溃: parent.findviewbydr.id.a_1.setVisibilityView.VISIBLE 不知道我做错了什么 代码如下 layouttext.java MyOnItemSelectedListener.java 包android.example.layouttest import android.view.View; import android.widget.AdapterView; import android.widget.Adapte

我似乎在以下方面遇到了应用程序崩溃:

parent.findviewbydr.id.a_1.setVisibilityView.VISIBLE

不知道我做错了什么

代码如下

layouttext.java

MyOnItemSelectedListener.java 包android.example.layouttest

import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;

public class MyOnItemSelectedListener implements OnItemSelectedListener {
 private static final int SPINNER_OPTION_FIRST = 0; 
    private static final int SPINNER_OPTION_SECOND = 1;
 public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   switch(pos) { 
         case SPINNER_OPTION_FIRST: { 
          Toast.makeText(parent.getContext(), "0", Toast.LENGTH_LONG).show();
          break;
         } 
         case SPINNER_OPTION_SECOND: { 
          Toast.makeText(parent.getContext(), "1", Toast.LENGTH_LONG).show();
          parent.findViewById(R.id.a_1).setVisibility(View.VISIBLE);
          parent.findViewById(R.id.a_2).setVisibility(View.VISIBLE);
          break;
         } 
  }  
 }   
 public void onNothingSelected(AdapterView<?> parent) {      
   // Do nothing.    
   }
}
请记住,ViewfindViewById从调用它的视图开始搜索,并向下搜索到它的子视图。如果您正在查找的ID为的视图不是视图本身或该视图的后代,则搜索将失败,findViewById将返回null

正如Falmari所建议的,在这种情况下,您可能不想在parent上调用findViewById。您可能也不想在视图中调用它


您希望在视图层次结构中的何处找到R.id.a_1?

是否确定要查找的是父视图而不是视图?请添加应用程序日志和异常堆栈跟踪。没有他们,很难帮上忙。
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;

public class MyOnItemSelectedListener implements OnItemSelectedListener {
 private static final int SPINNER_OPTION_FIRST = 0; 
    private static final int SPINNER_OPTION_SECOND = 1;
 public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   switch(pos) { 
         case SPINNER_OPTION_FIRST: { 
          Toast.makeText(parent.getContext(), "0", Toast.LENGTH_LONG).show();
          break;
         } 
         case SPINNER_OPTION_SECOND: { 
          Toast.makeText(parent.getContext(), "1", Toast.LENGTH_LONG).show();
          parent.findViewById(R.id.a_1).setVisibility(View.VISIBLE);
          parent.findViewById(R.id.a_2).setVisibility(View.VISIBLE);
          break;
         } 
  }  
 }   
 public void onNothingSelected(AdapterView<?> parent) {      
   // Do nothing.    
   }
}