Размещение элемента Spinner

Интерфейс, диалоги, темы, стили, меню
Ответить
tomattman
Сообщения: 7
Зарегистрирован: 22 июл 2015, 00:02

Размещение элемента Spinner

Сообщение tomattman » 22 июл 2015, 00:20

Привет, у меня вопрос. Необходимо разместить Spinner. При размещении как на втором скрине при запуске приложения выдает RuntimeException android.widget.Button cannot be cast to android.widgetSpinner
При переносе 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>
Вложения
Рабочий вариант
Рабочий вариант
outline spinner work.PNG (10.24 КБ) 3673 просмотра
Не рабочий, но необходимая разметка
Не рабочий, но необходимая разметка
outline spinner not work.PNG (9.75 КБ) 3673 просмотра
Последний раз редактировалось tomattman 22 июл 2015, 01:17, всего редактировалось 2 раза.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Размещение элемента Spinner

Сообщение Foenix » 22 июл 2015, 00:27

скопипасти все-таки код сюда полностью, не так у тебя в коде 100%
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

tomattman
Сообщения: 7
Зарегистрирован: 22 июл 2015, 00:02

Re: Размещение элемента Spinner

Сообщение tomattman » 22 июл 2015, 00:34

Добавил код

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Размещение элемента Spinner

Сообщение Foenix » 22 июл 2015, 01:05

икод activity_input
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Размещение элемента Spinner

Сообщение klblk » 22 июл 2015, 07:45

Попробуй Project->Clean...
У меня бывает некорректно генерится R файл при перетасовке элементов в xml в Eclipse.

tomattman
Сообщения: 7
Зарегистрирован: 22 июл 2015, 00:02

Re: Размещение элемента Spinner

Сообщение tomattman » 22 июл 2015, 22:06

всем спасибо, решил проблему удалением старой кнопки и созданием в том же месте новой, видимо был какой-то баг

Ответить