0

私のアプリ2スピナーは、基本的にユーザーが値を選択できるドロップダウンリストです。Spinner1 にはドロップダウンに 4 つのオプションがあり、Spinner2 にはドロップダウンに 5 つのオプションがあります。

ユーザーが spinner1 から option1 を選択し、 spinner2 から option1 を選択した場合、箇条書きのリスト [このアプリの HTML webapp バージョンでは、li タグを使用します] がビューの残りのフラグメントに表示されます。画像は物事をより明確にします。
[1]: http://imgur.com/qaqHZ フラグメント内で webview を使用してテキストを表示する場合、20 条件 [スピナー 1 の 4 つのオプションとスピナー 2 の 4 つのオプション] に対して動的にそれを行うにはどうすればよいでしょうか。 4*5]?

コードを添付しています

package com.temp1.android;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

public class MyAndroidAppActivity extends Activity {

    private Spinner spinner1, spinner2;
    private Button btnSubmit;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        addItemsOnSpinner2();
        addListenerOnButton();
        addListenerOnSpinnerItemSelection();

    }

    //add items into spinner dynamically
    public void addItemsOnSpinner2() {

        spinner2 = (Spinner) findViewById(R.id.spinner2);
        List<String> list = new ArrayList<String>();
        list.add("Equipment");
        list.add("Indications");
        list.add("Illustration");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner2.setAdapter(dataAdapter);
    }

    public void addListenerOnSpinnerItemSelection(){

        spinner1 = (Spinner) findViewById(R.id.spinner1);
        spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
    }

    //get the selected dropdown list value
    public void addListenerOnButton() {

        spinner1 = (Spinner) findViewById(R.id.spinner1);
        spinner2 = (Spinner) findViewById(R.id.spinner2);

        btnSubmit = (Button) findViewById(R.id.btnSubmit);

        btnSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Toast.makeText(MyAndroidAppActivity.this,
                        "OnClickListener : " + 
                        "\nSpinner 1 : " + String.valueOf(spinner1.getSelectedItem()) +
                        "\nSpinner 2 : " + String.valueOf(spinner2.getSelectedItem()),
                        Toast.LENGTH_SHORT).show();
            }

        });



    }

}





import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;

public class CustomOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View view, int pos,
            long id) {
        Toast.makeText(parent.getContext(), 
                "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

}

現在、イベントリスナーのデバッグにトーストを使用しています

4

1 に答える 1

0

フラグメント部分が完成したと思うのでFragment、レイアウトファイルR.layout.mainに idがあると思いますR.id.webviewfrag

そのフラグメントのクラスは次のようになります。

public class WebViewerFragment extends Fragment {

    private WebView mWebView;
    // a two dimensional array representing the data to put in the WebView
    private String[][] mData = new String[4][5];// put data in it

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View mainView = (View) inflater.inflate(R.layout.frag_layout, container, false);
        mWebView = (WebView) mainView.findViewById(R.id.webView1); 
        return mainView;
    }

    public void updateWebView(int firstSelection, int secondSelection) {
         if (firstSelection == AdapterView.INVALID_POSITION || secondSelection == AdapterView.INVALID_POSITION) {
              return;  
         } else {
              if (mWebView != null) {
                   mWebView.loadData(mData[firstSelection][secondSelection], "text/html", null);
              }
         }
    }
}

R.layout.frag_layoutだろう:

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

    <WebView
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

次に、onClickコールバックで行う必要があるのは次のとおりです。

@Override
public void onClick(View v) {
       WebViewerFragment wvf = (WebViewerFragment) getSupportFragmentManager().findFragmentById(R.id.webviewfrag);
       if (wvf != null && wvf.getView() != null) { 
            wvf.updateWebView(spinner1.getSelectedItemPosition(), spinner2.getSelectedItemPosition());
       }
}
于 2012-11-29T18:24:45.817 に答える