我有一个Android应用程序,其中包含一个包含2个片段的ViewPager.第一个片段包含EditText字段.当应用程序启动时,该字段立即获得焦点并启动软键盘(我想要发生).第二个片段仅包含一个列表(没有可编辑的文本字段).当我从片段1滑动到片段2时,我希望键盘消失.我尝试过的任何东西似乎都没有用.键盘不仅保持在视图中,还继续更新片段1的EditText字段.
我想我要么使用不正确的代码来隐藏键盘或将其放在错误的位置.如果任何人都可以发布正确实现的示例,将不胜感激!
我最近的尝试是放置应该在片段1的onDetach()方法中隐藏键盘的代码:
@Override
public void onDetach()
{
super.onDetach();
InputMethodManager imm = (InputMethodManager) this.context.getSystemService(Context.INPUT_METHOD_SERVICE);
// I'VE TRIED ALL THREE BELOW, NONE OF THEM WORK...
// imm.hideSoftInputFromWindow(this.messageView.getWindowToken(), 0);
// imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
// this.context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-fragments android-viewpager
我有一个活动DrawerLayout.我可以通过两种不同的方式打开抽屉......通过从屏幕的左侧区域向右滑动并单击应用程序标题.我没有显示应用程序图标,只有标题.我完全按照Google推荐的方式实现了这一点:创建导航抽屉:使用应用程序图标打开和关闭
就打开和关闭抽屉本身而言,一切都是有用的.但是,它不显示DrawerLayout假设要使用的标准图标.相反,我得到常规的插入符号(看起来像一个不到标志).
只要我将应用程序图标添加回其中,ActionBar它就会按预期开始工作.抽屉打开或关闭时,抽屉布局图标会显示并设置动画.我已尝试在我的样式XML文件中以编程方式删除应用程序图标.
有没有办法让DrawerLayout图标工作在没有应用程序图标???
更新:我找到了一个解决方案,但它比解决方案更糟糕.我只是创建了1x1像素透明PNG(blank.png)并将其设置为我的styles.xml文件中的app图标.以下是所有相关代码:
styles.xml
<style name="MyCustomTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyCustomActionBar</item>
<item name="android:icon">@drawable/blank</item>
</style>
<style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">showHome|showTitle|homeAsUp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
MainActivity - > onCreate()
this.navDrawerToggle = new ActionBarDrawerToggle
(
this,
this.navDrawerLayout,
R.drawable.icon_nav_drawer,
R.string.nav_drawer_open,
R.string.nav_drawer_closed
)
{
public void onDrawerClosed(View view) {}
public void onDrawerOpened(View drawerView) {}
};
Run Code Online (Sandbox Code Playgroud)
MainActivity - > onPostCreate()
super.onPostCreate(savedInstanceState);
this.navDrawerToggle.syncState();
Run Code Online (Sandbox Code Playgroud)
MainActivity - > onResume()
this.navDrawer.setOnItemClickListener(new DrawerItemClickListener());
this.navDrawerLayout.setDrawerListener(this.navDrawerToggle);
Run Code Online (Sandbox Code Playgroud)
MainActivity - > onPause()
this.navDrawer.setOnItemClickListener(null);
this.navDrawerLayout.setDrawerListener(null);
Run Code Online (Sandbox Code Playgroud)
MainActivity - …
我目前正在使用Scribe成功验证并向Twitter发布非媒体消息.这很容易,我发布的第一条测试消息没有任何问题.但是,我似乎根本无法发布照片.我已经回顾了Twitter在这里和这里发布媒体的说明.
Github上的所有Scribe/Twitter示例都是针对非媒体帖子的.如果有人能提供一个如何通过Scribe将照片发布到Twitter的可靠示例,那就太棒了!
我特别有两个问题:
1)我的帖子不会通过授权.我试过模仿上面发布的例子,但似乎没什么用.
2)当将图像从byte []转换为字符串时,我似乎只能在它停止之前获得4113个字符.根据我的理解,这远远低于String可以容纳的字符数.
这是我如何提取照片:
// GET PHOTO FILE AND FILE LENGTH
// INSTANTIATE UPLOAD VARIABLE WITH FILE LENGTH
File file = new File(photo); // ("photo" is a string path to the photo file)
int fileLength = (int) file.length();
uploadFile = new byte[fileLength];
// CREATE BUFFER INPUT STREAM OF FILE
BufferedInputStream inputStream;
try {inputStream = new BufferedInputStream(new FileInputStream(file));}
catch (FileNotFoundException e)
{
inputStream = null;
Toast.makeText(this.getApplicationContext(), "Buffer input stream error!", Toast.LENGTH_LONG).show();
}
// READ …Run Code Online (Sandbox Code Playgroud)