Размещение элемента Spinner
Добавлено: 22 июл 2015, 00:20
Привет, у меня вопрос. Необходимо разместить Spinner. При размещении как на втором скрине при запуске приложения выдает RuntimeException android.widget.Button cannot be cast to android.widgetSpinner
При переносе Spinner без изменения свойств как на первом скрине, все работает замечательно.
Исходя из логов, ошибка происходит на строке
Spinner spinner = (Spinner) findViewById(R.id.catSpinner);
Подскажите пожалуйста как исправить данную ошибку, чтобы разметка была как на втором скрине.
При переносе Spinner без изменения свойств как на первом скрине, все работает замечательно.
Исходя из логов, ошибка происходит на строке
Spinner spinner = (Spinner) findViewById(R.id.catSpinner);
Подскажите пожалуйста как исправить данную ошибку, чтобы разметка была как на втором скрине.
Код: Выделить всё
public class InputActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_input);
Log.d("my Log", "создание адаптера");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.category));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
Log.d("my Log", "создание spinner");
Spinner spinner = (Spinner) findViewById(R.id.catSpinner);
Log.d("my Log", "установка адаптера cпинеру");
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(spinnerClick);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.input, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public OnItemSelectedListener spinnerClick = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "pos = " + position, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
};
}
Код: Выделить всё
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.google.mail.tomattman.cashcontrol.InputActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<EditText
android:id="@+id/titleInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:hint="@string/titleInputHint" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<EditText
android:id="@+id/costInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:ems="10"
android:hint="@string/costTextView"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/countInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="7"
android:ems="10"
android:hint="@string/countTextView"
android:inputType="numberDecimal" />
<Spinner
android:id="@+id/catSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="7" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/addButton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0"
android:text="@string/add" />
</LinearLayout>
<TextView
android:id="@+id/sumTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>