tabi ki
adapter
class kampanyaadapter(
val kampanyalistesi:ArrayList<kampanya>, private val onItemClickListener: AdapterView.OnItemClickListener?,
):RecyclerView.Adapter<kampanyaadapter.paylasimholder>()
{
private lateinit var mListener:onItemClickListenerr
interface onItemClickListenerr{
fun onItemClick(position: Int)
}
fun setOnClickListener(listener:onItemClickListenerr){
mListener=listener
}
class paylasimholder(itemView: View,listener:onItemClickListenerr):RecyclerView.ViewHolder(itemView) {
var timeStamp: TextView
```
init {
timeStamp=itemView.findViewById(R.id.timestamp)
itemView.setOnClickListener {
listener.onItemClick(adapterPosition)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): paylasimholder {
val inflater=LayoutInflater.from(parent.context)
val view=inflater.inflate(R.layout.recycler_row,parent,false)
return paylasimholder(view,mListener)
}
override fun onBindViewHolder(holder: paylasimholder, position: Int) {
holder.itemView.recycler_row_kullaniciadi.text=kampanyalistesi[position].kullaniciadi
holder.itemView.recycler_row_aciklama.text=kampanyalistesi[position].aciklama
holder.bind(onItemClickListener)
if (kampanyalistesi[position].downloadurl!=null){
holder.itemView.recycler_row_imageview.visibility=View.VISIBLE
Picasso.get().load(kampanyalistesi[position].downloadurl).into(holder.itemView.recycler_row_imageview)
}
}
override fun getItemCount(): Int {
return kampanyalistesi.size
}`
bu geri sayımın olacağı aktivite(bazı kodları kafa karışıklığına sebep olmamak için sildim)
`class kampanyaolustur : AppCompatActivity() , AdapterView.OnItemSelectedListener{
var secilengorsel: Uri? = null
var secilenbitmap: Bitmap? = null
var countDownTimers: Array<CountDownTimer?>?=null
private lateinit var kampanyaadapterr: kampanyaadapter
var button: Button? = null
var spinner: Spinner? = null
var textView: TextView? = null
var item: String? = null
var member: Member? = null
var sureler = arrayOf<String?>("Choose time", "yarim saat", "1 saat", "3 saat")
private lateinit var storage: FirebaseStorage
private lateinit var database: FirebaseFirestore
val db = Firebase.firestore
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kampanyaolustur)
auth = Firebase.auth
storage = FirebaseStorage.getInstance()
database = FirebaseFirestore.getInstance()
textView = findViewById(R.id.textView2)
button = findViewById(R.id.button)
spinner = findViewById(R.id.spinner_id)
spinner?.setOnItemSelectedListener(this)
member = Member()
val arrayAdapter: ArrayAdapter<*> =
ArrayAdapter<Any?>(this, android.R.layout.simple_spinner_dropdown_item, sureler)
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner?.setAdapter(arrayAdapter)
// button?.setOnClickListener(View.OnClickListener { SaveValue(item) })
}
override fun onItemSelected(adapterView: AdapterView<*>?, view: View, i: Int, l: Long) {
item = spinner!!.selectedItem.toString()
textView!!.text = item
}
override fun onNothingSelected(adapterView: AdapterView<*>?) {}
fun SaveValue(item: String?) {
if (item == "Choose time") {
Toast.makeText(this, "süre seçiniz", Toast.LENGTH_LONG).show()
} else if(item=="yarim saat") {
countDownTimers = arrayOf(object : CountDownTimer(1800000, 1000) {
override fun onTick(millisUntilFinished: Long) {
var diff = millisUntilFinished
val secondsInMilli: Long = 1000
val minutesInMilli = secondsInMilli * 60
val hoursInMilli = minutesInMilli * 60
val elapsedHours = diff / hoursInMilli
diff %= hoursInMilli
val elapsedMinutes = diff / minutesInMilli
diff %= minutesInMilli
val elapsedSeconds = diff / secondsInMilli
textView2.text = "$elapsedHours saat $elapsedMinutes dakika $elapsedSeconds saniye"
}
override fun onFinish() {
textView2.text = "kampanya süresi doldu!"
}
}.start())
Toast.makeText(this, "süre alındı", Toast.LENGTH_LONG).show()
}
}
fun paylasimyap(view: View) {
SaveValue(item)
}
}else{
veritabaninakaydet(null)
}
}`
bu da recyclerview aktivitesi
`class anasayfa : AppCompatActivity() {
private lateinit var auth : FirebaseAuth
val db=Firebase.firestore
var kampanyalistesi=ArrayList<kampanya>()
private lateinit var recyclerviewadapter:kampanyaadapter
private lateinit var countDownTimer:CountDownTimer
var onItemClickListener:AdapterView.OnItemClickListener?=null
val onItemClick:AdapterView.OnItemClickListener?=null
var countDownTimers: Array<CountDownTimer?>?=null
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val menuInflater=menuInflater
menuInflater.inflate(R.menu.menu,menu)
return super.onCreateOptionsMenu(menu)
val layoutManager=LinearLayoutManager(this)
recyclerView.layoutManager=layoutManager
recyclerviewadapter= kampanyaadapter(kampanyalistesi,onItemClickListener,countDownTimers)
recyclerView.adapter=recyclerviewadapter
recyclerviewadapter.setOnClickListener(object :kampanyaadapter.onItemClickListenerr{
override fun onItemClick(position: Int) {
val intent= Intent(applicationContext, profil::class.java)
startActivity(intent)
}
})
}
}
recyclerviewadapter.notifyDataSetChanged()
}
}
}
}
}`