使用setVisibility(View.VISIBLE)时android崩溃
我似乎在以下方面遇到了应用程序崩溃: parent.findviewbydr.id.a_1.setVisibilityView.VISIBLE 不知道我做错了什么 代码如下 layouttext.java MyOnItemSelectedListener.java 包android.example.layouttest使用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
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.
}
}