我有一个像这样定义的字符串列表:
var list = ["one", "two", "three", "four"];
Run Code Online (Sandbox Code Playgroud)
我想使用文本小部件并排显示屏幕上的值.我试图使用以下代码来尝试这个:
for (var name in list) {
return new Text(name);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,for循环只运行一次,并且只有一个文本小部件被渲染,表示one(列表中的第一项).另外,当我在for循环中添加日志消息时,它也会被触发一次.为什么我的for循环不是基于列表的长度?它似乎只运行一次然后退出.
我正在制作一个Flutter应用程序,我正在使用The MovieDB api来获取数据.当我打电话给api并要求一部特定的电影时,这是我得到的一般格式:
{
"adult": false,
"backdrop_path": "/wrqUiMXttHE4UBFMhLHlN601MZh.jpg",
"belongs_to_collection": null,
"budget": 120000000,
"genres": [
{
"id": 28,
"name": "Action"
},
{
"id": 12,
"name": "Adventure"
},
{
"id": 878,
"name": "Science Fiction"
}
],
"homepage": "http://www.rampagethemovie.com",
"id": 427641,
"imdb_id": "tt2231461",
"original_language": "en",
"original_title": "Rampage",
...
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个模型类来解析它,并且类定义如下:
import 'dart:async';
class MovieDetail {
final String title;
final double rating;
final String posterArtUrl;
final backgroundArtUrl;
final List<Genre> genres;
final String overview;
final String tagline;
final int id;
const MovieDetail(
{this.title, this.rating, this.posterArtUrl, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Kotlin中使用我通过Volley获得的数据创建一个简单的recyclerView(我已经确认返回了正确的数据),我一直在运行错误E/RecyclerView: No adapter attached; skipping layout,实际上我已经指定了一个带有我自定义适配器类的适配器创建:
class ImageAdapter(var c: Context, var list: ArrayList<Image>) : RecyclerView.Adapter<ImageAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder? {
val layoutInflater = LayoutInflater.from(parent.context)
return ViewHolder(layoutInflater.inflate(R.layout.image_cardview, parent, false))
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val imageUrl = list[position].url
val submitter = list[position].submitter
val color = list[position].color
holder.submitterTV.text = submitter
holder.card.setCardBackgroundColor(Color.parseColor(color))
}
override fun getItemCount() = list.size
class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
val card = itemView.card
val submitterTV = itemView.submitter
val imageView = itemView.image …Run Code Online (Sandbox Code Playgroud) 我在Android Studio中编辑了fragment_main.xml,我收到此错误:
多个根标签
这里讨论的代码块是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
<EditText <!--Error here in the bracket-->
android:id="@+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button <!--Error here in the bracket-->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"/>
Run Code Online (Sandbox Code Playgroud)
我在EditText之前和Button之前的括号中得到错误
我试图在Android中创建一个导航抽屉,我遇到了一些问题.我的MainActivity.java中有一个方法可以处理我在导航抽屉上的点击,并指导用户进行适当的活动.方法如下所示:
@Override
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
android.app.Fragment objFragment = null;
switch (position){
case 0:
objFragment= new menu1_Fragment();
break;
case 1:
objFragment = new menu2_Fragment();
break;
case 2:
objFragment = new menu3_Fragment();
break;
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, objFragment)
.commit();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我在第三行到最后一行出错了.replace(R.id.container, objFragment):FragmentTransaction cannot be applied to (int, android.app.fragment)
我有一个RecyclerView(ytRC),在该RecyclerView中,每个元素都有一个缩略图和一个相应的标题,该标题通过适配器(ResultsAdapter)进入RecyclerView内部,该适配器将缩略图和标题放入cardview中。我想使cardview中的标题变成一行,这很容易。但是,有些标题过长,因此无法使用。我认为选取框文本视图将是解决此问题的好方法,因此我开始寻找解决方案。
我发现了一些成果,如这个和这个。但是,这些解决方案仅能部分起作用,这意味着RecyclerView中的50个元素中只有1个实际滚动了,这取决于它们的长度。我认为发生这种情况是因为我正在调用,title.setEnabled(true);并且title.requestFocus();使用的onBindViewHolder()方法,ResultsAdapter并且仅当在RecyclerView中生成唯一的某个视图时,文本才被破坏。
我想尝试的另一个解决方案是创建一个自定义TextView类ScrollingTextView:
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
public class ScrollingTextView extends android.support.v7.widget.AppCompatTextView {
public ScrollingTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public ScrollingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
//set scrolling
setSelected(true);
requestFocus();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,使用该类将产生相同的结果。那么,我该如何在每个文本太多的RecyclerView元素中将textview框起来?
我这里有一个奇怪的情况.我有一个文本文件,它是一个JSON对象列表,它们由换行符分隔,如下所示:
{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}
{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}
{"upSpeed": 13.890492898595365, "downSpeed": 87.35392034236816, "time": "2016-12-12T21:37:52.174878"}
{"upSpeed": 13.69741910903317, "downSpeed": 88.08812682966898, "time": "2016-12-12T21:41:04.688231"}
...
Run Code Online (Sandbox Code Playgroud)
我fs.readFile(text file)用来加载该文本文件,然后array = data.split("\n")逐行拆分文本文件,然后插入每一行array,创建一个名为的JSON数组array.但是,问题是当我使用分割原始文本文件时data.split("\n"),程序将结果对象包装'在任一侧的单引号()中,从而导致无效的JSON.所以,它最终看起来像这样:
[ '{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}',
'{"upSpeed": 13.860419184316857, "downSpeed": 85.93058668830014, "time": "2016-12-12T21:31:56.507318"}',
'{"upSpeed": 13.890492898595365, "downSpeed": 87.35392034236816, "time": "2016-12-12T21:37:52.174878"}',
'{"upSpeed": 13.69741910903317, "downSpeed": 88.08812682966898, "time": "2016-12-12T21:41:04.688231"}'
...]
Run Code Online (Sandbox Code Playgroud)
那么,无论如何都要避免添加单引号,结果是实际的javascript对象?我试图创建一个for循环并循环遍历数组中的每个元素并运行array[i] = array[i].replace(/'/g, "");以使用nothing("")替换单引号但这根本不起作用并返回上面显示的完全相同的结果.有任何想法吗?