0

選択すると新しいスピナーがビューに追加されるスピナーがあります。しかし、膨らませようとすると、次の行でエラーが発生します。

LinearLayout addSpinner =(LinearLayout)selectedItemView.getContext().findViewById(R.id.addSpinnerLayout);

findViewByID は赤色で、マウス ホバー時に次のエラーが表示されます。

Cannot resolve method 'findViewById(int)'

私のJavaクラスコード全体はこれです:

public class Portfolio extends ActionbarMenu {



    //get beer details from bundle
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_portfolio);

        final Spinner portfolioType = (Spinner) findViewById(R.id.portfolioSpinner);
        portfolioType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {


            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {

                String portfolioChoice = portfolioType.getSelectedItem().toString();

                Toast.makeText(getApplicationContext(), portfolioChoice, Toast.LENGTH_LONG).show();

                Log.d("portfolio" , portfolioChoice);

                if( portfolioChoice.equals("All")){
                    //get userID
                    //get user data
                    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(selectedItemView.getContext());
                    String userID = prefs.getString("userID", null);

                    //construct url
                    String url = "myURL"


                    //async task goes here
                    new PortfolioGetAllBeers(selectedItemView.getContext()).execute(url);

                }

                else if (portfolioChoice.equals("Brewery")){

                    //inflate brewery spinner
                    //to do: change to start rater
                    LinearLayout ll = (LinearLayout) findViewById(R.id.addSpinnerLayout);
                    ll.removeAllViews();

                    //add spinner to layout
                    LayoutInflater inflater = (LayoutInflater)selectedItemView.getContext().getSystemService(selectedItemView.getContext().LAYOUT_INFLATER_SERVICE);
                    LinearLayout addSpinner = (LinearLayout)selectedItemView.getContext().findViewById(R.id.addSpinnerLayout);
                    addSpinner.addView(inflater.inflate(R.layout.addspinner_layout, null));

                    //todo: get breweries and fill spinner


                }








            }

            @Override
            public void onNothingSelected(AdapterView<?> parentView) {
                // your code here
            }

        });



    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main2, menu);

        return true;
    }




}

活動ポートフォリオ:

<?xml version="1.0" encoding="utf-8"?>


    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="6dp"
                android:layout_marginRight="6dp"
                android:layout_marginTop="4dp"
                android:layout_marginBottom="4dp"
                android:orientation="vertical"
                android:background="@drawable/bg_card">

                <!-- Card Contents go here -->
                <TextView
                    android:id="@+id/portfolioTitle"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:textSize="20sp"
                    android:textStyle = "bold"
                    android:text="Your Portfolio"
                    android:padding="5dip"
                    >
                </TextView>




            </LinearLayout >

        </FrameLayout>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="6dp"
                android:layout_marginRight="6dp"
                android:layout_marginTop="4dp"
                android:layout_marginBottom="4dp"
                android:orientation="vertical"
                android:background="@drawable/bg_card">

                <!-- Card Contents go here -->
                <TextView
                    android:id="@+id/sortTitle"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:textSize="15sp"
                    android:textStyle = "bold"
                    android:text="Sorting Options:"
                    android:padding="5dip"
                    >
                </TextView>

                <LinearLayout
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:orientation="horizontal"
                    >

                    <Spinner
                        android:id="@+id/portfolioSpinner"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:entries="@array/portfolio_array"
                        android:layout_weight="1"

                        />

                    <LinearLayout
                        android:id="@+id/addSpinnerLayout"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:layout_weight="1">

                    </LinearLayout>


                </LinearLayout>




            </LinearLayout >

        </FrameLayout>

    <ListView
        android:id="@+id/allYourBeersList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:dividerHeight="0px"
        android:divider="@null"

        >
    </ListView>


    </LinearLayout>

addspinner_layout :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <Spinner
        android:id="@+id/portfolioSpinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/portfolio_array"
        android:layout_weight="1"

        />




</LinearLayout>
4

2 に答える 2

2

代わりに試す

LinearLayout addSpinner = inflater.inflate(R.layout.addSpinnerLayout, null);

私はあなたの構文とあなたがやろうとしていることについて少し混乱していますが、これはその問題を解決するはずです.

于 2013-10-13T04:22:09.913 に答える