Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin:从java转换(参数错误?)_Android_Kotlin - Fatal编程技术网

Android Kotlin:从java转换(参数错误?)

Android Kotlin:从java转换(参数错误?),android,kotlin,Android,Kotlin,我想把Java代码转换成Kotlin。但这不起作用。ArrayAdapter无法继承,因为引发了一个错误:“无法使用提供的参数调用以下函数。”奇怪的是,它也无法识别getApplicationContext(),尽管我不确定这是否是一个相应的错误 科特林审判: package com.example.evpic.ui.main import android.content.Context import android.content.Intent import android.os.Bund

我想把Java代码转换成Kotlin。但这不起作用。ArrayAdapter无法继承,因为引发了一个错误:“无法使用提供的参数调用以下函数。”奇怪的是,它也无法识别getApplicationContext(),尽管我不确定这是否是一个相应的错误

科特林审判:

package com.example.evpic.ui.main


import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.ListView
import android.widget.TextView
import androidx.annotation.Nullable
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager
import com.example.evpic.R
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.tabs.TabLayout
import java.io.*
import java.net.HttpURLConnection
import java.net.URL


class LoginSucessActivity : AppCompatActivity() {

    var listView: ListView? = null
    var sTitle =
        arrayOf("Facebook", "Whatsapp", "Twitter", "Instagram", "Youtube")
    var mDescription = arrayOf(
        "Facebook Description",
        "Whatsapp Description",
        "Twitter Description",
        "Instagram Description",
        "Youtube Description"
    )
    var images = arrayOf(
        R.drawable.o_one,
        R.drawable.o_one,
        R.drawable.o_one,
        R.drawable.o_one,
        R.drawable.o_one
    )

    val PICK_IMAGE = 1 //

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.w("xxxxxxxxxxx", "LoginSucessActivity");
        setContentView(R.layout.activity_main)
        listView = findViewById(R.id.listView)
    }


    internal class MyAdapater : ArrayAdapter<String>() constructor(c_: Context,  title_: Array<String>,  description_: Array<String>, imgs_: Array<Int>) : super(c_, R.layout.row, R.id.textView1, title_) {
        var c: Context? = null
        var rTitle: Array<String>? = null
        var rDescription: Array<String>? = null
        var rImgs: Array<Int>? = null
        constructor  {
            c = c_
            rTitle = title_
            rDescription = description_
            rImgs = imgs_
        }


        override fun getView(position: Int, @Nullable convertView: View?, parent: ViewGroup): View {
            val layoutInflater: LayoutInflater =  getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater


            val row: View = layoutInflater.inflate(R.layout.row, parent, false)
            val images: ImageView = row.findViewById(R.id.image)
            val myTitle = row.findViewById<TextView>(R.id.textView1)
            val myDescription = row.findViewById<TextView>(R.id.textView2)


            images.setImageResource(rImgs!![position])
            myTitle.text = rTitle!![position]
            myDescription.text = rDescription!![position]

            return super.getView(position, convertView, parent)
        }

    }

}
package com.example.evpic.ui.main
导入android.content.Context
导入android.content.Intent
导入android.os.Bundle
导入android.util.Log
导入android.view.LayoutInflater
导入android.view.view
导入android.view.ViewGroup
导入android.widget.ArrayAdapter
导入android.widget.ImageView
导入android.widget.ListView
导入android.widget.TextView
导入androidx.annotation.Nullable
导入androidx.appcompat.app.appcompat活动
导入androidx.viewpager.widget.viewpager
导入com.example.evpic.R
导入com.google.android.material.floatingactionbutton.floatingactionbutton
导入com.google.android.material.tabs.TabLayout
导入java.io*
导入java.net.HttpURLConnection
导入java.net.URL
类LoginSAccessActivity:AppCompatActivity(){
变量listView:listView?=null
变幅针迹=
arrayOf(“Facebook”、“Whatsapp”、“Twitter”、“Instagram”、“Youtube”)
变量mddescription=arrayOf(
“Facebook描述”,
“Whatsapp描述”,
“推特描述”,
“Instagram描述”,
“Youtube描述”
)
var images=arrayOf(
R.drawable.o_一号,
R.drawable.o_一号,
R.drawable.o_一号,
R.drawable.o_一号,
R.drawable.o_一号
)
val PICK_IMAGE=1//
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
Log.w(“xxxxxxxxxx”,“登录访问活动”);
setContentView(R.layout.activity_main)
listView=findViewById(R.id.listView)
}
内部类MyAdapater:ArrayAdapter()构造函数(c:\Context,title:\Array,description:\Array,imgs:\Array):super(c:\R.layout.row,R.id.textView1,title){
变量c:上下文?=null
变量rTitle:数组?=null
变量rDescription:数组?=null
变量rImgs:数组?=null
建造师{
c=c_
标题_
rDescription=描述_
rImgs=imgs_
}
覆盖fun getView(位置:Int,@Nullable convertView:View?,父级:ViewGroup):视图{
val layoutInflater:layoutInflater=getApplicationContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE)作为layoutInflater
val行:视图=布局平坦。充气(R.layout.row,父级,false)
val图像:ImageView=row.findViewById(R.id.image)
val myTitle=row.findViewById(R.id.textView1)
val myDescription=row.findViewById(R.id.textView2)
image.setImageResource(rImgs!![位置])
myTitle.text=rTitle!![position]
myDescription.text=rDescription!![位置]
return super.getView(position、convertView、parent)
}
}
}
原始Java代码:

class MyAdapater extends ArrayAdapter<String>{
    Context context;
    String sTitle[];
    String rDescription[];
    int rImgs[];

    MyAdapter(Context c, String title[], String description[], int imgs[]){
        super(c, R.layout.row, R.id.textView1, title);
        this.context = c;
        this.rTitle = title;
        this.rDescription = description;
        this.rImgs = imgs;
    }
        
        
        
    @NonNull
    @OVerride
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent){
        LayoutInflater layoutInflater = (LayoutInflator)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View row = layoutInflater.inflate(R.layout.row, parent, false);
        ImageView images = row.findViewById(R.id.image);
        TextView myTitle = row.findViewById(R.id.textView1);
        TextView myDescription = row.findViewById(R.id.textView2);

        images.setImageResource(rImgs[position]);
        myTitle.setText(rTitle[position]);
        myDescription.setText(rDescription[position]);

        return super.getView(position, convertView, parent);
    }
        
        
        
    }


    
类MyAdapater扩展了ArrayAdapter{
语境;
线针[];
字符串rDescription[];
int-rImgs[];
MyAdapter(上下文c、字符串标题[]、字符串描述[]、int-imgs[]){
super(c,R.layout.row,R.id.textView1,title);
this.context=c;
this.rTitle=标题;
this.rDescription=描述;
this.rImgs=imgs;
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
LayoutInflater LayoutInflater=(LayoutInflator)getApplicationContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
视图行=布局更平坦。充气(R.layout.row,父,false);
ImageView images=row.findViewById(R.id.image);
TextView myTitle=row.findViewById(R.id.textView1);
TextView myDescription=row.findviewbyd(R.id.textView2);
image.setImageResource(rImgs[位置]);
myTitle.setText(rTitle[位置]);
myDescription.setText(rDescription[position]);
返回super.getView(position、convertView、parent);
}
}

MyAdapater类的代码应为:

internal class MyAdapter constructor(
        val c: Context,
        val title: Array<String>,
        val description: Array<String>,
        val imgs: Array<Int>
) : ArrayAdapter<String>(c, R.layout.row, R.id.textView1, title) {

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        val layoutInflater: LayoutInflater =  c.applicationContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater

        val row: View = layoutInflater.inflate(R.layout.row, parent, false)
        val images = row.findViewById<ImageView>(R.id.image)
        val myTitle = row.findViewById<TextView>(R.id.textView1)
        val myDescription = row.findViewById<TextView>(R.id.textView2)

        images.setImageResource(imgs[position])
        myTitle.text = title[position]
        myDescription.text = description[position]

        return row
    }
}
内部类MyAdapter构造函数(
val c:上下文,
val标题:数组,
val描述:数组,
valimgs:数组
):ArrayAdapter(c,R.layout.row,R.id.textView1,标题){
覆盖视图(位置:Int,convertView:View?,父级:ViewGroup):视图{
val layoutInflater:layoutInflater=c.applicationContext.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE)作为layoutInflater
val行:视图=布局平坦。充气(R.layout.row,父级,false)
val images=row.findviewbyd(R.id.image)
val myTitle=row.findViewById(R.id.textView1)
val myDescription=row.findViewById(R.id.textView2)
image.setImageResource(imgs[位置])
myTitle.text=标题[位置]
myDescription.text=描述[位置]
返回行
}
}

您是手动将其转换为Kotlin还是使用内置工具将其转换为Kotlin?
getApplicationContext()
在Kotlin中是
applicationContext
辅助构造函数的作用是什么?它无法调用任何超级构造函数,如果上下文可为null,则整个类将毫无用处。