Java 使用以setVisibility(View.GONE)开头的布局中的值发布;
我有一个连接到串行设备的应用程序。当我启动应用程序时,我希望设置被隐藏,因此我将linearlayout设置为不可见并消失。但是,这意味着未建立连接。有一个问题是,如果视图设置为“消失”,则无法读取我在微调器中设置的默认值,这是为什么以及如何修复它 如果设置被隐藏并且我连接,一旦我打开设置,连接工作正常 因此,如果两种布局都显示如下所示,则效果良好: 如果“设置”布局不可见,则可以正常工作: 但如果它消失了,在我拿出设置之前它不会工作: 下面是我在onCreate中使用默认值9600创建的微调器的示例Java 使用以setVisibility(View.GONE)开头的布局中的值发布;,java,android,view,Java,Android,View,我有一个连接到串行设备的应用程序。当我启动应用程序时,我希望设置被隐藏,因此我将linearlayout设置为不可见并消失。但是,这意味着未建立连接。有一个问题是,如果视图设置为“消失”,则无法读取我在微调器中设置的默认值,这是为什么以及如何修复它 如果设置被隐藏并且我连接,一旦我打开设置,连接工作正常 因此,如果两种布局都显示如下所示,则效果良好: 如果“设置”布局不可见,则可以正常工作: 但如果它消失了,在我拿出设置之前它不会工作: 下面是我在onCreate中使用默认值9600创建的
mBaudSpinner = (Spinner) findViewById(R.id.bannerBaudSpinner);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mBaudSpinner.setAdapter(adapter);
String[] tempArray = SlickUSB2Serial.BAUD_RATES;
for (int i = 0; i < tempArray.length; i++) {
adapter.add(tempArray[i]);
}
mBaudSpinner.setSelection(SlickUSB2Serial.BaudRate.BAUD_9600.ordinal());
我需要将其命名为,但它不是:
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
//bannerView.setVisibility(View.INVISIBLE);
//bannerView.setVisibility(View.GONE);
// TODO Auto-generated method stub
Log.d(TAG3, "in onItemSelected");
changeSelectedAdapter(mDeviceAdapters.get(position));
}
问题是,尽管适配器正在连接,但changeSelectedAdapter没有被调用,因为onItemSelected没有被调用。这是因为如果视图设置为“已删除”,则不能选择项目 解决此问题的两种方法: 建立连接时手动调用它:
changeSelectedAdapter(mSelectedAdapter);
或者,当适配器连接时,我可以设置一些默认VAL:
mSelectedAdapter = adapter;
mSelectedAdapter.setCommSettings(BaudRate.BAUD_9600, DataBits.DATA_8_BIT, ParityOption.PARITY_NONE, StopBits.STOP_1_BIT);
第三种方法是让视图可见,但通过编程将大小设置为一些微小的大小,然后,您可以根据需要将其更改回所需大小如果您知道应用程序启动时的选择,为什么您需要从微调器获取选择,而不仅仅是使用所选值?我不确定如何设置初始值是这里的问题,这是一个全新的问题。如果我尝试选择Adapter.setCommSettings(波特率.BAUD_9600,数据位.DATA_8位,奇偶选项.ParityOption_NONE,停止位.STOP_1位);应用程序崩溃是因为mSelectedAdapter为空,因为除非我拿出设置,否则不会调用changeSelectedAdapter。如果设置可见,则会调用它,但我没有;我不知道当视图消失时,您需要调用
mSelectedAdapter
什么?如果没有,您可能不需要调用它,或者使用一些默认值初始化mSelectedAdapter,当您的视图处于gone
状态时,我将立即尝试此操作,谢谢,我会看到的。
mDeviceSpinner = (Spinner) findViewById(R.id.bannerDeviceSpinner);
mDeviceSpinnerAdapter = new ArrayAdapter<CharSequence>(this,
android.R.layout.simple_spinner_item);
mDeviceSpinnerAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mDeviceSpinner.setAdapter(mDeviceSpinnerAdapter);
mDeviceSpinner.setOnItemSelectedListener(this);
private static USB2SerialAdapter mSelectedAdapter;
changeSelectedAdapter(mSelectedAdapter);
mSelectedAdapter = adapter;
mSelectedAdapter.setCommSettings(BaudRate.BAUD_9600, DataBits.DATA_8_BIT, ParityOption.PARITY_NONE, StopBits.STOP_1_BIT);