'正确'的Android开发语法

时间:2014-05-01 23:44:37

标签: java android

我不完全确定这是正确的SE问这个,但我想知道在开发Android时是否预期。我最终得到一个更大的包含类,然后是回调中回调的大量嵌套/新建匿名类。我想知道这是否是预期的,或者是否有更好的方法,因为嵌套类的数量开始导致非常复杂的代码。

这只是一个对话框片段,上面有一些设置。单击某个设置时,它会使用适当的选项填充列表视图,当您选择一个选项时,它会更新您单击的值。它是一个DialogFragment,带有嵌套的匿名OnClickListener(),然后将嵌套的匿名OnItemClickListener()分配给ListView类型的对象。这允许我使用ListView对象进行多个设置,不得不为每个设置复制ListView(我只是将新的适配器和OnItemClickListener绑定到它)。

class MyDialogFragment extends DialogFragment
{
    protected View     _root;
    protected ListView _listViewSomeSettingOptions;
    protected TextView _textViewSomeSetting;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        _root = inflater.inflate(R.layout.layout_for_dialog, container, false);
        _listViewSomeSettingOptions = (ListView)_root.FindViewById(R.id.listViewSettingOptions);
        _textViewSomeSetting.setOnClickListener(new OnClickListener()
        {
            protected ArrayList<String> _someSettingOptions = new ArrayList<String>();
            // Fill _someSettingOptions with a list of options
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, _someSettingOptions);
            _listViewSomeSettingOptions.setAdapter(adapter);
            _listViewSomeSettingOptions.setOnItemClickListener(new OnItemClickListener()
            {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                    _textViewSomeSetting.setText(_someSettingOptions.get(position));
                }
            }
        }
    }
}

这是怎么回事?我应该制作实现侦听器而不是使用匿名控件的自定义控件吗?这个DialogFragment接近1000行onCreateView现在处理不同的选项并显示用户调整设置选项的更新,它只是刺痛我的&#34;也许这不是最好的设计&#34;感。我想除了Upkeep之外,我想知道这种开发形式是否存在缺陷。

0 个答案:

没有答案