小编jul*_*jul的帖子

如何禁用ViewGroup的所有子项上的所有触摸事件?

我有一个FrameLayout包含很多东西的容器(包括ScrollView,WebView,ViewPager...).

我想能够触发该容器上的onClick事件,但似乎一些ScrollView,WebViewViewPager拦截触摸事件,因为onClick事件时才会触发,当我点击容器没有任何的零件他们...

如何禁用容器子项上的所有触摸事件,以便能够在其中的任何位置触发onClick?

UPDATE

想法是在Android 3.2中使用类似任务管理器的东西,即应用程序的当前可见屏幕显示为缩小图标,可以单击.

谢谢

android onclick scrollview webview android-viewpager

11
推荐指数
1
解决办法
2万
查看次数

如何覆盖Django admin的观点?

我想在默认的Django管理员中添加一个上传按钮,如下所示:

在此输入图像描述

为此,我重写了admin/index.html模板以添加按钮,但是如何覆盖管理视图以便处理它?

我想要实现的是在上传文件后显示成功消息或错误消息.

django admin

11
推荐指数
1
解决办法
1万
查看次数

SupportMapFragment的getMap()返回null

我正在尝试SupportMapFragment动态创建并将其放入FrameLayout容器中.

我的问题是mMapFragment.getMap()退货null......

有人可以帮忙吗?

CenterMapFragment.java

public class CenterMapFragment extends Fragment {

    private SupportMapFragment mMapFragment;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        return inflater.inflate(R.layout.center_map_fragment, container, false);
    }

    @Override
    public void onActivityCreated (Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);

        if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()) == ConnectionResult.SUCCESS) {
            setUpMapIfNeeded();
        }
    }


    private void setUpMapIfNeeded() {

        if (mMapFragment == null) {

            mMapFragment = SupportMapFragment.newInstance();
            FragmentTransaction fragmentTransaction =
                            getChildFragmentManager().beginTransaction();
            fragmentTransaction.replace(R.id.map, mMapFragment);
            fragmentTransaction.commit(); 

            setUpMap();
        }
    }

    private void setUpMap() {       

        GoogleMap map = …
Run Code Online (Sandbox Code Playgroud)

android android-maps-v2

10
推荐指数
1
解决办法
6149
查看次数

如何从Android中的对话框启动活动

我创建了一个自定义对话框,我想在单击"确定"时启动一个新活动.如何将上下文设置为我的Intent构造函数的第一个参数?

我可以使用创建意图getContext(),但我不能打电话startActivity.我应该将调用对话框的活动传递给对话框的构造函数吗?这是通过单击对话框启动活动的常用方法吗?

public class CustomDialog extends Dialog implements OnClickListener {
    Button okButton, cancelButton;

    public CustomDialog(Context context) {      
        super(context);     
        setContentView(R.layout.custom_dialog);
        okButton = (Button) findViewById(R.id.button_ok);
        okButton.setOnClickListener(this);
        cancelButton = (Button) findViewById(R.id.button_cancel);
        cancelButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {       
        if (v == cancelButton)
            dismiss();
        else {
            Intent i = new Intent(getContext(), ItemSelection.class);
            startActivity(i); //The method startActivity(Intent) is undefined for the type CustomDialog
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android dialog android-context

9
推荐指数
2
解决办法
3万
查看次数

以编程方式将子视图添加到FrameLayout,然后更改其位置

我正在做一个增强现实应用程序,我需要在摄像机视图上显示一些对象.我正在创建一个FrameLayout,我添加了我的相机视图,然后我添加了我的AR对象(现在我正在尝试使用TextView).在TextView下面的代码中我添加到我的FrameLayout没有显示...

有人可以帮忙吗?一旦我fs出现,我怎么能以编程方式改变它的位置?

UPDATE

我尝试使用ImageView而不是TextView,它可以工作......为什么!?

public class ARActivity extends Activity{

    private CBCameraView cv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            cv = new CBCameraView(this);

            FrameLayout rl = new FrameLayout(this);

            rl.addView(cv, GlobalVars.screenWidth, GlobalVars.screenHeight); 

            setContentView(rl);

            // this works...
            /*ImageView fs = new ImageView(this);
            fs.setImageResource(R.drawable.icon);
            rl.addView(fs);*/

            TextView fs = new TextView(this);
            fs.setText("Bar seco");
            fs.setTextColor(android.R.color.white);
            fs.setTextSize(1,14);
            fs.setLayoutParams(new ViewGroup.LayoutParams(
                    LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
            rl.addView(fs);

    }    
}
Run Code Online (Sandbox Code Playgroud)

android android-framelayout

8
推荐指数
1
解决办法
1万
查看次数

无法禁用预测文本

我试图禁用对于给定的预测性文本EditText,为解释这里,但是我还是通过预测自动完成...

我有一个支持XT9的三星Galaxy S.

有人可以帮忙吗?

<EditText
    android:id="@+id/search_field"
    android:layout_width="300dp"
    android:layout_height="27dp"
    android:background="@drawable/bg_searchfield"
    android:hint="@string/search_hint"
    android:imeOptions="actionSearch"
    android:inputType="text|textNoSuggestions|textFilter"/>
Run Code Online (Sandbox Code Playgroud)

android android-edittext

8
推荐指数
2
解决办法
8673
查看次数

将数据从DialogFragment返回到适配器

我正在尝试使用一个接口将数据从a返回DialogFragmentArrayAdapter它所显示的数据.

我在这里读过类似的东西,但我不知道如何调用DialogFragment返回数据的函数.

有人可以帮忙吗?

MyDialog.java

public class MyDialog extends DialogFragment {  

    static interface Listener {
        void returnData(int result);
    }

    /* ... */

    @Override
    public void onActivityCreated (Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);        

        mBtnSubmit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                // How can I call PCListAdapter.returnData ?

                dismiss();              
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

PCListAdapter.java

public class PCListAdapter extends ArrayAdapter<PC> implements MyDialog.Listener {

    /* ... */

    public void showCommentDialog() {

        FragmentManager fm = ((Activity)mContext).getFragmentManager();
        MyDialog …
Run Code Online (Sandbox Code Playgroud)

android interface adapter dialogfragment

8
推荐指数
1
解决办法
4046
查看次数

如何清除Fragment中的参数?

我有一个AudioPlayerFragment用setArguments()传递一些url的东西.

如果我的实例中有一个url密钥,我会启动一个播放音频流的服务.如果已经播放了一个流,我会停止它并使用新流再次启动它.getArguments()AudioPlayerFragment

如果没有争论,我什么都不做.

我的问题是参数与实例保持一致,所以当我回到它时getArguments(),如果没有设置新的,则返回最新的参数集.

所以在阅读它们之后,我尝试将参数设置为null

setArguments(null);
Run Code Online (Sandbox Code Playgroud)

但我明白了

Java.lang.IllegalStateException: fragment already active
Run Code Online (Sandbox Code Playgroud)

那我怎么能清除这些论点呢?

android fragment

8
推荐指数
3
解决办法
8153
查看次数

如何管理MediaPlayer.setVolume()+ SeekBar来设置它+设备音量控制

根据文档的建议,我想用这个setvolume()方法来控制我的音量MediaPlayer,但是我对如何管理它有点困惑.

我正在使用a设置音量SeekBar,初始化为AudioManager.STREAM_MUSIC流中的当前音量.

当用户没有修改设备音量控制时这是有道理的,但是当他这样做时,我不确定我应该做什么,我有几个疑问:

  • MediaPlayer音量如何与设备音量相关?设置的最大值(1)是否setVolume()对应mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)

  • 如果是这种情况,SeekBar每次设置设备音量控制时都应该重置进度值,但那么,使用什么点MediaPlayer.setVolume()而不是AudioManager.setStreamVolume()

  • 什么是使用的标准方法MediaPlayer.setVolume()SeekBar

private final static int MAX_VOLUME = 100;
private AudioManager mAudioManager; 
private SeekBar mVolumeControl;

mVolumeControl = (SeekBar) getActivity().findViewById(R.id.volume_control);
mAudioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
mVolumeControl.setMax(MAX_VOLUME);
mVolumeControl.setProgress(MAX_VOLUME*mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)/mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
mVolumeControl.setOnSeekBarChangeListener(mVolumeControlChangeListener);

private SeekBar.OnSeekBarChangeListener mVolumeControlChangeListener = new SeekBar.OnSeekBarChangeListener() {

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        float volume = (float) (1 - (Math.log(MAX_VOLUME - progress) …
Run Code Online (Sandbox Code Playgroud)

android seekbar android-mediaplayer

8
推荐指数
1
解决办法
1万
查看次数

Session.getActiveSession()在启动应用程序时返回null,尽管我已连接

我使用com.facebook.widget.UserSettingsFragment管理我的应用程序中的登录/注销到Facebook:

UserSettingsFragment userSettingsFragment = new UserSettingsFragment();
Session session = Session.getActiveSession();
if(session==null || session.isClosed()){
    userSettingsFragment.setPublishPermissions(Arrays.asList("publish_actions"));
}
fragmentTransaction.replace(R.id.content_container, userSettingsFragment, "userSettingsFragment");
Run Code Online (Sandbox Code Playgroud)

在另一个Fragment(但相同Activity),在Facebook上发布之前,我正在检查我是否正在使用

Session session = Session.getActiveSession();
if (session != null && session.isOpened()){
    publishOnFacebook(intent.getExtras());
}
Run Code Online (Sandbox Code Playgroud)

当我启动我的应用程序并尝试发布时,我总是得到一个,null Session虽然我之前登录过.当我开始时UserSettingsFragment,它告诉我我已经连接了.

怎么能Session.getActiveSession();null,如果我确实有联系吗?

此外,如果II开始Fragment我直接发布的地方UserSettingsFragment,我得到正确的Session,即:

1 start the app
2 call `Session.getActiveSession()` in another `Fragment` returns `null`
3 start `UserSettingsFragment` shows that I'm log
Run Code Online (Sandbox Code Playgroud)

1 start the app
2 start `UserSettingsFragment` …
Run Code Online (Sandbox Code Playgroud)

android facebook-android-sdk

8
推荐指数
1
解决办法
1万
查看次数