1

ViewSwitcher2つのビューを切り替えるためにa を使用しています(使用されるはずです)。

ViewSwitcherコードは次のとおりです。

final ViewSwitcher viewSwitcher = new ViewSwitcher(getApplicationContext());

                TextView t = new TextView(this);
                [...]
                t.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        viewSwitcher.showNext();
                    }
                });

                viewSwitcher.addView(t,
                        new TableRow.LayoutParams(
                                TableRow.LayoutParams.MATCH_PARENT,
                                TableRow.LayoutParams.MATCH_PARENT, 1f));

                final String key = (String)map.keySet().toArray()[n];

                if(key.contains("EditText"))
                {
                    EditText e = new EditText(this);
                    [...]
                    e.setOnLongClickListener(new View.OnLongClickListener() {
                        @Override
                        public boolean onLongClick(View view) {
                            viewSwitcher.showPrevious();
                            return true;
                        }
                    });

                    viewSwitcher.addView(e,
                            new TableRow.LayoutParams(
                                    TableRow.LayoutParams.MATCH_PARENT,
                                    TableRow.LayoutParams.MATCH_PARENT, 1f));
                }
                else if (key.contains("Spinner"))
                {
                            Spinner spin = new Spinner(getApplicationContext());
                            [...]
                            spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                                @Override
                                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                                    if(adapterView.getSelectedItemPosition() == 0)
                                        viewSwitcher.showPrevious();
                                }

                                @Override
                                public void onNothingSelected(AdapterView<?> adapterView) {

                                }
                            });

                            viewSwitcher.addView(spin,
                                    new TableRow.LayoutParams(
                                            TableRow.LayoutParams.MATCH_PARENT,
                                            TableRow.LayoutParams.MATCH_PARENT, 1f));
                }

実際には、後で値を取得するために ViewSwitcher を List に入れようとしました。

(以前は EditText しか使用していなかったときは機能していたように)、実際には機能しませんViewSwitcher

ここに私の質問があります: ViewSwitcher で現在選択されているビューの値を取得して、後で使用するためにリストに追加できるようにする方法を知っていますか?

前もって感謝します。

4

1 に答える 1

1

メソッドを使用getCurrentView()して、現在表示されているビューを取得できます。

ビューから値を取得するには、ビューをキャストして、そのビューからテキストを取得します。同様に、

EditText temp = (EditText) viewSwitcher.getCurrentView();
String s = temp.getText().toString();

現在のビューのタイプを確認し、必要なプロパティを取得できます。

View v = viewSwitcher.getCurrentView();
if (v instanceof EditText) {
     //code...
} else if (v instanceof Spinner) {
     //code...
}
于 2018-08-08T07:16:25.577 に答える