问题描述
我有问题。我会尝试运行这个程序。但我不能那样做。 我看到评论 Picasso.get().load(users.getProfile()).into(R.id.profile_image); 我看到 .into 中的评论。
而且,我只想从 firebase 运行图片。 请检查一下!并帮助我。
这是 MainActivit.kt 代码:
class MainActivity : AppCompatActivity() {
var refUsers: DatabaseReference? = null
var firebaseUser: FirebaseUser? = null
/**
* Need Dependencys
* implementation 'com.google.firebase:firebase-core:18.0.2'
implementation 'com.google.firebase:firebase-auth:20.0.3'
implementation 'com.google.firebase:firebase-storage-ktx:19.2.1'
implementation 'com.google.firebase:firebase-database-ktx:19.6.0'
implementation 'com.google.firebase:firebase-messaging:21.0.1'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.rengwuxian.materialedittext:library:2.1.4'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(findViewById(R.id.toolbar_main)) // eikhane uporer action bar design ta call kora hoece
firebaseUser = FirebaseAuth.getInstance().currentUser
refUsers = FirebaseDatabase.getInstance().reference.child("Users").child(firebaseUser!!.uid)
val toolbar: androidx.appcompat.widget.Toolbar = findViewById(R.id.toolbar_main)
setSupportActionBar(toolbar)
supportActionBar!!.title = "" // jodi ami amar apps er default name show koraite chai toolbar e tahole eikhane sei name ta ami dite pari.
val tablayout: TabLayout = findViewById(R.id.tab_layout)
val viewPager: ViewPager = findViewById(R.id.view_pager) // eikhane viewpager bolte ek tab theke arek tab slide kore jawar jonnoi eti bebohar kora hoy
val viewPagerAdapter = ViewPagerAdapter(supportFragmentManager)
/**
* eikhane viewpager.Adapter die CHATfragment,searchfragment,settingfragment ke add kora hoece.
*/
viewPagerAdapter.addFragment(ChatsFragment(),"Chats")
viewPagerAdapter.addFragment(SettingsFragment(),"Search")
viewPagerAdapter.addFragment(SettingsFragment(),"Settings")
viewPager.adapter = viewPagerAdapter //eikhane ViewpagerAdapter er sathe viewpager ke jog kora hoice.
tablayout.setupWithViewPager(viewPager) //eikhane Tablayout er sathe viewpager ke jog kora hoice.
//display username and profile picture
refUsers!!.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists())
{
val users: Users? = snapshot.getValue(Users::class.java)
findViewById<TextView>(R.id.user_name).text = users!!.getUsername()
Picasso.get().load(users.getProfile()).into(R.id.profile_image);
}
}
override fun onCancelled(error: DatabaseError) {
Todo("Not yet implemented")
}
})
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_main,menu)
return true
}
override fun onoptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.action_logout -> {
FirebaseAuth.getInstance().signOut()
val intent = Intent(this@MainActivity,WelcomeActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()
return true
}
}
return false
}
internal class ViewPagerAdapter(fragmentManager: FragmentManager) :
FragmentPagerAdapter(fragmentManager)
{
private val fragments: ArrayList<Fragment>
private val titles: ArrayList<String>
init {
fragments = ArrayList<Fragment>()
titles = ArrayList<String>()
}
override fun getCount(): Int {
return fragments.size
}
override fun getItem(position: Int): Fragment {
return fragments[position]
}
fun addFragment(fragment: Fragment,title: String)
{
fragments.add(fragment)
titles.add(title)
}
override fun getPageTitle(i: Int): CharSequence? {
return titles[i]
}
}
}
这是 Users.kt 代码:
class Users
{
private var uid: String =""
private var username: String =""
private var profile: String =""
private var cover: String =""
private var status: String =""
private var search: String =""
private var facebook: String =""
private var instagram: String =""
private var website: String =""
constructor()
constructor(
uid: String,username: String,profile: String,cover: String,status: String,search: String,facebook: String,instagram: String,website: String)
{
this.uid = uid
this.username = username
this.profile = profile
this.cover = cover
this.status = status
this.search = search
this.facebook = facebook
this.instagram = instagram
this.website = website
}
fun getUID(): String?{
return uid
}
fun setUID(uid: String){
this.uid = uid
}
/**
*
*
*/
fun getUsername(): String?{
return username
}
fun setUsername(username: String){
this.username = username
}
/**
*
*/
fun getStatus(): String?{
return status
}
fun setStatus(status: String){
this.status = status
}
/**
*
*/
fun getProfile(): String?{
return profile
}
fun setProfile(status: String){
this.profile = profile
}
/**
*
*/
fun getCover(): String?{
return cover
}
fun setCover(cover: String){
this.cover = cover
}
fun getSearch(): String?{
return search
}
fun setSearch(search: String){
this.search = search
}
fun getFacebook(): String?{
return facebook
}
fun setFacebook(facebook: String){
this.facebook = facebook
}
fun getInstagram(): String?{
return instagram
}
fun setInstagram(instagram: String){
this.instagram = instagram
}
fun getWebsite(): String?{
return website
}
fun setWebsite(website: String){
this.website = website
}
}
解决方法
删除这一行:
Picasso.get().load(users.getProfile()).into(R.id.profile_image);
并替换为:
Picasso.get().load(users.getProfile()).into(findViewById<ImageView>(R.id.profile_image));