- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我知道这是代码波动,但在整理我的Fragment中的RecyclerView时遇到了问题。我读了一堆教程,每个人似乎都有不同的做事方式。只是无法确定它...所以这是我的代码:
FRAGMENT XML
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.xxxx.listview.CalendarFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/event_recycle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="horizontal" />
</FrameLayout>
data class SectionOrRow(var needTicketing:String?,var eventSponsor:String?,var eventED:String?,var eventSD:String?,var eventTitle:String?,var mysectionName:String?,var isRow:Boolean){
companion object {
public fun createRow(row: String): Unit {
// val ret = SectionOrRow()
// return ret
}
public fun createSection(section: String): Unit {
// val ret = SectionOrRow(null,section,false)
// return ret
}
}
}
package com.example.XXX.listview
class CalendarFragment : Fragment() {
lateinit var eventInfo: JsonArray<JsonObject>
lateinit var event2Info: JsonArray<JsonObject>
val eventList0 = ArrayList<SectionOrRow>()
val TAG : String= "CalendarFragment"
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view : View = inflater.inflate(R.layout.fragment_calendar,container,false)
(activity as MainActivity).getSupportActionBar()?.setTitle("Medfield Calendar")
var event_recycle:RecyclerView = view.findViewById(R.id.event_recycle)
var myUrl:String = "https://www.nosite.com/functions/API/eventsJSON2.php?zip_code=02052"
myUrl.httpGet().responseString { request, response, result ->
//do something with response
when (result){
is Result.Failure -> {
Log.d("Towns",result.toString())
val error = result.getAs<String>()
Log.d("Towns error ",error)
}
is Result.Success -> {
val data = result.getAs<String>()
val events : Parser = Parser()
val eventBuilder: StringBuilder = StringBuilder(data)
val eventsjson = events.parse(eventBuilder) as JsonObject
Log.d("JOO",eventsjson.toString())
var eventList0 = ArrayList<SectionOrRow>()
eventInfo = eventsjson.array("events")!!
Log.d("length array",this.eventInfo.size.toString())
if(this.eventInfo.size<2){
Toast.makeText(context,"There are no categories for this town...", Toast.LENGTH_LONG).show()
}else{
Log.d("type",this.eventInfo.javaClass.name) // kotlin.Double
for (i in eventInfo.indices){
//Log.d("Loops"+i.toString(),eventInfo[i].string("category"))
//Log.d("Loops"+i.toString(),eventInfo[i].string("events2"))
var theCat = eventInfo[i].string("category")
eventList0.add(SectionOrRow(null,null,null,null,null,theCat,false))
var theEvents:JsonArray<JsonObject>? = eventInfo[i].array("events2")
Log.d("MSG1","IS category header"+theCat)
theEvents?.let{
for(x in theEvents.indices){
val needT: String? = theEvents[x].string("news_needsticketing")
val eventSpon: String? = theEvents[x].string("news_sponsor")
val startD: String? = theEvents[x].string("news_start_date")
val endD: String? = theEvents[x].string("news_expiration")
val newsT: String? = theEvents[x].string("news_tile")
eventList0.add(SectionOrRow(needT,eventSpon,endD,startD,newsT,theCat,true))
}
Log.d("MSG2","Are Events")
}
//eventList0.add(SectionOrRow.createRow("City"))
}
}
event_recycle.layoutManager = LinearLayoutManager(context)
event_recycle.hasFixedSize()
event_recycle.adapter = MyEventAdapter(context,eventList0)
Log.d("All Size First",eventList0.size.toString())
//Log.d("FN",nextOne.toString())
// myview.textView3.setText(Html.fromHtml(ownerMessage,Html.FROM_HTML_MODE_LEGACY))
//myview.textView3.setText(myCS)
}
}
}
// Inflate the layout for this fragment
return view
}
inner class MyEventAdapter(context: Context,val theEvents:ArrayList<SectionOrRow>):RecyclerView.Adapter<RecyclerView.ViewHolder>(){
override fun getItemViewType(position: Int): Int {
if(theEvents[position].isRow){
return 0
}else{
return 1
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val item = theEvents.get(position)
if(item.isRow){
val h = holder as RowViewHolder
h.textView.setText(item.mysectionName)
}else{
val h = holder as SectionViewHolder
h.textView.setText(item.eventSD)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder? {
if(viewType==0) {
val v = LayoutInflater.from(parent.context).inflate(R.layout.calendar_row, parent, false)
return RowViewHolder(v)
}
if(viewType==1){
val v = LayoutInflater.from(parent.context).inflate(R.layout.calendar_section, parent, false)
return SectionViewHolder(v)
}
return null
}
override fun getItemCount(): Int {
Log.d("All Size",theEvents.size.toString())
return theEvents.size
}
inner class RowViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val textView: TextView
init {
textView = itemView.findViewById<View>(R.id.sectionHead) as TextView
}
}
inner class SectionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val textView: TextView
init {
textView = itemView.findViewById<View>(R.id.dateOfEvent) as TextView
}
}
}
}
inner class MyEventAdapter(context: Context,val theEvents:ArrayList<SectionOrRow>):RecyclerView.Adapter<RecyclerView.ViewHolder>(){
override fun getItemViewType(position: Int): Int {
Log.d("Current Boolean",theEvents[position].isRow.toString())
if(theEvents[position].isRow){
//true is row
return 1
}else{
return 0
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val item = theEvents.get(position)
Log.d("Current Item",item.toString())
if(item.isRow){
val h = holder as RowViewHolder
val s = java.text.SimpleDateFormat("EEE\nMM/dd")
val format = s.format(Integer.parseInt(item.eventSD) * 1000L)
h.textView.setText(format)
Log.d("Current Title",item.eventTitle.toString())
h.titleView.setText(item.eventTitle)
h.datesView.setText(item.eventED)
h.sponsorView.setText(item.eventSponsor)
if(item.needTicketing=="Y") {
h.ticketView.setText("Ticketing Available")
}else{
h.ticketView.setText("")
}
}else{
val h = holder as SectionViewHolder
h.textView.setText(item.mysectionName)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder? {
if(viewType==1) {
val v = LayoutInflater.from(parent.context).inflate(R.layout.calendar_row, parent, false)
v.setOnClickListener(object: View.OnClickListener {
override fun onClick(p0: View?) {
Toast.makeText(
v.context,
"Please Click Set Town to Return to Previous Screen....",
Toast.LENGTH_SHORT
).show()
}
})
return RowViewHolder(v)
}
if(viewType==0){
val v = LayoutInflater.from(parent.context).inflate(R.layout.calendar_section, parent, false)
return SectionViewHolder(v)
}
return null
}
override fun getItemCount(): Int {
Log.d("All Size",theEvents.size.toString())
return theEvents.size
}
inner class RowViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var textView: TextView
var titleView: TextView
var datesView: TextView
var sponsorView: TextView
var ticketView: TextView
init {
textView = itemView.findViewById<View>(R.id.dateOfEvent) as TextView
titleView = itemView.findViewById<View>(R.id.rowTitle) as TextView
datesView = itemView.findViewById<View>(R.id.rowDates) as TextView
sponsorView = itemView.findViewById<View>(R.id.rowSponsor) as TextView
ticketView = itemView.findViewById<View>(R.id.rowTicketing) as TextView
}
}
inner class SectionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var textView: TextView
init {
textView = itemView.findViewById<View>(R.id.sectionHead) as TextView
}
}
}
最佳答案
在RecyclerViewAdapter
中的override fun onViewCreated
中调用Fragment
类
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val recyclerView=view?.findViewById(R.id.your_recycler_view) as RecyclerView
recyclerView.layoutManager=LinearLayoutManager(context, LinearLayout.VERTICAL,false)
var yourData=ArrayList<YourDataClass>()
yourData.add(YourDataClass("passYourData"))
val yourAdapterClassVariableName=YourRecyclerViewAdapterClass(yourData)
recyclerView.adapter=yourAdapterClassVariableName
}
关于view - 我似乎无法整理我的Kotlin Recycler多 View 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46667702/
当我创建一个数据库时,我被要求选择默认排序规则,当我创建一个表时,我被要求选择排序规则。 utf8_general_ci 或...拉丁...?区分哪个是对的依据是什么? 最佳答案 A collatio
PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义
正则(regular),要使用正则表达式需要导入Python中的re(regular正则的缩写)模块。正则表达式是对字符串的处理,我们知道,字符串中有时候包含很多我们想要提取的信息,掌握这些处理字符
在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 ?
]js正则表达式基本语法(精粹): http://www.zzvips.com/article/94068.html 许多语言,包括P
1、首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mo
我更愿意在 R 中执行以下操作,但我愿意接受(易于学习的)其他解决方案。 我有多个(比如说 99 个)制表符分隔文件(我们称它们为 S1.txt 到 S99.txt)和表格,所有文件都具有完全相同的格
我制作了一个小程序,可以使用数学进行物理计算。 我有几个 if 语句,它们做同样的事情,但变量不同,但它们必须是它们,就好像 TextBox 是空的,int 将是 0。 例子如下: if (first
我正在构建需要扩展框的东西 - 这很好,我可以正常工作。然而,如果你看看这个FIDDLE你会看到它有点乱。我希望有一种方法可以扩展它们所在的盒子,这样它们就不会跳来跳去?那么盒子 3 的左侧会比右侧膨
我相当确定(在 MATLAB 中)应该有一个优雅的解决方案,但我现在想不起来。 我有一个包含 [classIndex, start, end] 的列表,我想将连续的类索引折叠成一个组,如下所示: 这个
维基百科将 XMPP 定义为: ...an open-standard communications protocol for message-oriented middleware based on
我的代码库已经进入了某种状态,希望能够摆脱它 repo 看起来有点像这样(A1、B1、C1 等显然是提交) A1 ---- A2 ---- A3 ---- A4 -
如何整理以下数据框 data.frame(a = c(1,2), values = c("[1.1, 1.2, 1.3]", "[2.1, 2.2]")) a values 1
所以我试图在 Haskell 中生成出租车号码列表。出租车号码是可以用两种不同方式写成两个不同立方体之和的数字 - 最小的是 1729 = 1^3 + 12^3 = 9^3 + 10^3 . 现在,我
我正在使用 roxygen2 来记录我正在开发的包的数据集。我知道你可以 use roxygen to document a dataset ,但是Shane's answer最终建议进行黑客攻击,虽
这个问题在这里已经有了答案: How can I combine two strings together in PHP? (19 个回答) 关闭 5 年前。 提前致歉,尽管我已经尝试并失败了几件不
我有一个大部分整洁的数据框,但有 2 列包含基准,而不是将基准合并为观察结果。我该如何整理,以便将“Facility_score”和“TTP”col_names 添加为每个独特的 FYQ 和 Metr
我有以下输入数据。每一行都是一个实验的结果: instance algo profit time x A 10 0.5 y A
我已经使用 PHP 和 MySQL 实现了搜索。目前我的表格整理是 "utf8_unicode_ci"。问题是,使用此排序规则 "ä"= "a" 是。如果我将排序规则更改为 "utf_bin" 一切正
所以我是 JS 和 Jquery 库的新手。我一直在玩弄一些东西,可以看到它非常不整洁,这就是我希望你们能帮助建议一种更好的方法来实现我想要实现的目标的地方。 目标: 要有多个复选框,其中一些如果被选
我是一名优秀的程序员,十分优秀!