我有一个FrameLayout包含很多东西的容器(包括ScrollView,WebView,ViewPager...).
我想能够触发该容器上的onClick事件,但似乎一些ScrollView,WebView并ViewPager拦截触摸事件,因为onClick事件时才会触发,当我点击容器没有任何的零件他们...
如何禁用容器子项上的所有触摸事件,以便能够在其中的任何位置触发onClick?
UPDATE
想法是在Android 3.2中使用类似任务管理器的东西,即应用程序的当前可见屏幕显示为缩小图标,可以单击.
谢谢
我想在默认的Django管理员中添加一个上传按钮,如下所示:

为此,我重写了admin/index.html模板以添加按钮,但是如何覆盖管理视图以便处理它?
我想要实现的是在上传文件后显示成功消息或错误消息.
我正在尝试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) 我创建了一个自定义对话框,我想在单击"确定"时启动一个新活动.如何将上下文设置为我的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) 我正在做一个增强现实应用程序,我需要在摄像机视图上显示一些对象.我正在创建一个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) 我试图禁用对于给定的预测性文本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) 我正在尝试使用一个接口将数据从a返回DialogFragment到ArrayAdapter它所显示的数据.
我在这里读过类似的东西,但我不知道如何调用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) 我有一个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)
那我怎么能清除这些论点呢?
根据文档的建议,我想用这个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) 我使用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)