我正在使用a SimpleDateFormat
,我从两个不同的来源获得结果.一个源使用该格式"yyyy-MM-dd HH:mm:ss"
,而另一个使用"yyyy-MM-ddTHH:mm:ssZ"
.我对从第二种格式获取时区('Z'值)不感兴趣,有没有一种方法可以获得这些时间而不使用不同的格式字符串?有些东西会忽略中间字符以及之后的字符'ss'
.
我创建了一个自定义UITableViewCell
,并且UITextView
放在这个原型单元格中.当我单击此textView时,键盘可以自动弹跳.但是,如果我想隐藏键盘,我将不得不点击Return
键.这不太方便.
这是问题所在.firstResponder
当我滚动tableview时,如何重新设置textView 以隐藏键盘.
cellForRowAtIndex
方法如下.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell()
if(indexPath.section == 0){
cell = self.tableView.dequeueReusableCellWithIdentifier("InputCell")!
let textView = cell.viewWithTag(102) as! UITextView
textView.editable = true
textView.keyboardType = UIKeyboardType.Default
textView.delegate = self
textView.targetForAction(#selector(FeedBackViewController.getTextViewInsideCell(_:)), withSender: textView)
}
if(indexPath.section == 1){
cell = self.tableView.dequeueReusableCellWithIdentifier("ConfirmButtonCell")!
let label = cell.textLabel
label?.text = "send"
label?.textAlignment = NSTextAlignment.Center
label?.textColor = UIColor.redColor()
}
return cell
}
Run Code Online (Sandbox Code Playgroud)
以下是我实施的一些方法.
func textView(textView: UITextView, shouldChangeTextInRange range: …
Run Code Online (Sandbox Code Playgroud) 我一直在寻找适用于Android的图像编辑SDK,其中包括自定义贴纸的选项.一个很好的例子是Adobe Creative SDK(以前是Aviary SDK),虽然目前的版本仅支持自定义要包含的功能,但没有选项可以添加自己的贴纸.另一个很好的例子是Fotor SDK,它支持添加自己的贴纸,但它现在正在开发中,无法访问以前的版本(我知道).
还有一些编辑SDK可用,包括img.ly和CLImageEditor的PhotoEditor SDK,但仅适用于iOS.如果有人知道带有贴纸功能的Android编辑SDK,或者有人可以指出我在这个主题(我无法找到)的一些体面的资源,所以我可以创建自己的,我将不胜感激.
我想在两个布局之间放置一个普通按钮,如图所示.
我不想使用浮动按钮和协调器布局.
是否有可能通过相对布局?
我正在使用以下xml文件来执行此操作.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10" >
<fragment
android:id="@+id/mapForPlannedRide"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3.5" />
<LinearLayout
android:id="@+id/planned_detail_layout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="6.5"
android:background="@color/text_white"
android:orientation="vertical"
android:weightSum="10" >
<LinearLayout
android:id="@+id/departure_layout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="2.5"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/passenger" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="5dp" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/departure"
android:textSize="@dimen/text_size17sp" />
<TextView
android:id="@+id/departure"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="dfg ddfghd dfdg"
android:textSize="@dimen/text_size14sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight=".03"
android:background="@color/line_color" />
<LinearLayout
android:id="@+id/destination_layout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="2.5"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="20dp" …
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用id
Anko 的属性来识别视图:
class MainActivityUI : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = with(ui) {
frameLayout {
textView {
id = R.id.text
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在Activity
使用find()
函数(或使用Kotlin Android Extensions)中获取它:
class MainActivity : AppCompatActivity() {
private val textView by lazy {
find<TextView>(R.id.text)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MainActivityUI().setContentView(this)
textView.text = "Hello World"
}
}
Run Code Online (Sandbox Code Playgroud)
但我觉得我错过了一些东西; README提到find
功能的唯一地方或Kotlin Android Extensions位于标题为Supporting Existing Code的部分:
您不必使用Anko重写所有UI.您可以使用Java编写旧类.此外,如果您仍然希望(或有)编写Kotlin活动类并因某种原因而膨胀XML布局,则可以使用View属性,这将使事情变得更容易:
Run Code Online (Sandbox Code Playgroud)// Same as findViewById(), simpler to use val …
最初我设置了一个BroadcastReceiver
接收来自Nearby Messages API的意图.
class BeaconMessageReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Nearby.getMessagesClient(context).handleIntent(intent, object : MessageListener() {
override fun onFound(message: Message) {
val id = IBeaconId.from(message)
Timber.i("Found iBeacon=$id")
sendNotification(context, "Found iBeacon=$id")
}
override fun onLost(message: Message) {
val id = IBeaconId.from(message)
Timber.i("Lost iBeacon=$id")
sendNotification(context, "Lost iBeacon=$id")
}
})
}
private fun sendNotification(context: Context, text: String) {
Timber.d("Send notification.")
val manager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val notification = NotificationCompat.Builder(context, Notifications.CHANNEL_GENERAL)
.setContentTitle("Beacons")
.setContentText(text)
.setSmallIcon(R.drawable.ic_notification_white)
.build() …
Run Code Online (Sandbox Code Playgroud) android android-intentservice android-ble beacon google-nearby
我一直试图让我的头脑绕过这几个小时.
我有一个主要的Fragment类,然后从我在该类中的ImageView设置的onClick,我启动一个带有简单的"是"或"取消"选项的Dialog Fragment.
我如何制作它,以便当用户点击"确定"时,它会将结果代码发送回我的主片段,告诉它运行一些代码(在我的情况下,我正在设置壁纸).
这听起来简单但似乎无法弄明白.提前致谢.
Onclick在哪里我想以某种方式将结果返回到:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.image_detail_fragment,
container, false);
mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getActivity().getFragmentManager(),
"MyDialogFragment");
}
public void onDialogOKPressed() {
((ImageDetailFragment) (DialogFragment.this.getParentFragment()))
.onDialogOKPressed();
dismiss();
}
});
return v;
}
Run Code Online (Sandbox Code Playgroud)
对话类:
class MyDialogFragment extends DialogFragment {
private Button ButtonOk;
private Button ButtonCancel;
public MyDialogFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, …
Run Code Online (Sandbox Code Playgroud) 我已经成功地ListView
在一个Fragment
. 从列表中,我还设法成功加载了底部工作表。
如果我点击列表“一个”中的第一项,则会出现底部工作表。
如果我点击底部工作表的外部,底部工作表就会消失。
如果我点击列表中的第二个项目“Two”,底部的表格会再次出现。
如果我再次执行 1) 然后向下滑动底部工作表并尝试执行 3),屏幕将保持灰色,就好像底部工作表仍然显示但不可见...... ???
我该如何纠正?
下面是我的代码。
SecondFragment.java
:
/**
* A simple {@link Fragment} subclass.
*/
public class SecondFragment extends Fragment {
public SecondFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_second, container, false);
String[] faList = {
"One",
"Two",
};
ListView listView = (ListView) view.findViewById(R.id.listFa);
ArrayAdapter<String> listviewAdapter = new ArrayAdapter<String>(
getActivity(),
android.R.layout.simple_list_item_1,
faList
);
listView.setAdapter(listviewAdapter);
// …
Run Code Online (Sandbox Code Playgroud) 我正在使用 ThreeTen-Backport (特别是ThreeTenABP)来显示项目中的时间戳。我希望显示的时间戳以本地化格式显示(基于Locale
系统的);使用以下任一方法都很容易DateTimeFormatter.ofLocalizedDateTime()
:
DateTimeFormatter formatter = DateTimeFormatter\n .ofLocalizedDateTime(FormatStyle.LONG)\n .withLocale(Locale.getDefault())\n .withZone(ZoneId.systemDefault());\n\nString timestamp = formatter.format(Instant.now());\n
Run Code Online (Sandbox Code Playgroud)\n\nFormatStyle
问题是我对只有四种类型(SHORT
、MEDIUM
、LONG
、 )的格式化程序的输出没有太多控制FULL
。我很好奇是否有一种方法可以对输出进行更精细的控制,而不丢失本地化格式。
timestamp
使用前面的代码,区域设置的结果"en_US"
将是:
"January 23, 2017 1:28:37 PM EST"\n
Run Code Online (Sandbox Code Playgroud)\n\n虽然区域设置的结果"ja_JP"
是:
"2017\xe5\xb9\xb41\xe6\x9c\x8823\xe6\x97\xa5 13:28:37 GMT-5:00"\n
Run Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,每个区域设置都使用特定的模式,并使用默认的 12 或 24 小时格式。我想保留本地化模式,但更改一些内容,例如是否显示时区,或者是否使用 12 小时或 24 小时格式。
\n\n例如; 如果我可以将两个区域设置设置为使用 12 小时格式,并删除时区;结果如下所示:
\n\n"January 23, 2017 1:28:37 PM"\n\n"2017\xe5\xb9\xb41\xe6\x9c\x8823\xe6\x97\xa5 1:28:37\xe5\x8d\x88\xe5\xbe\x8c"\n
Run Code Online (Sandbox Code Playgroud)\n android ×7
ios ×2
java ×2
android-ble ×1
anko ×1
beacon ×1
bottom-sheet ×1
date ×1
dialog ×1
fragment ×1
graphics ×1
kotlin ×1
localization ×1
photos ×1
sdk ×1
simulator ×1
swift ×1
threetenbp ×1
uitableview ×1
uitextview ×1
xcode ×1
xml ×1