강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

후다닥님의 프로필 이미지
후다닥

작성한 질문수

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

명언리스트 페이지 제작 - ListView

30 강 소스 좀 올려 주십시요

작성

·

18

0

선생님

 

  1. 명언리스트 페이지 제작 - ListView 소스 좀 올려 주십시요.

 

어떤 곳이 잘못되었는지 비교하고 싶습니다.

 

답변 2

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

package com.bokchi.goodwords

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView

class ListViewAdpater(val List : MutableList<String>) : BaseAdapter() {

    override fun getCount(): Int {
        return List.size
    }

    override fun getItem(position: Int): Any {
        return List[position]
    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {

        var convertView = convertView

        if (convertView == null) {
            convertView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item, parent, false)
        }

        val listviewText = convertView?.findViewById<TextView>(R.id.listViewTextArea)
        listviewText!!.text = List[position]


        return convertView!!


    }
}
package com.bokchi.goodwords

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.databinding.DataBindingUtil
import com.bokchi.goodwords.databinding.ActivityMainBinding


class MainActivity : AppCompatActivity() {

    private lateinit var binding : ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val sentenceList = mutableListOf<String>()

        sentenceList.add("검정화면에 대충 흰글씨 쓰면 명언같다.")
        sentenceList.add("사람에게 하나의 입과 두 개의 귀가 있는 것은 말하기보다 듣기를 두 배로 하라는 뜻이다.")
        sentenceList.add("결점이 없는 친구를 사귀려고 한다면 평생 친구를 가질 수 없을 것이다.")
        sentenceList.add("자기 아이에게 육체적 노동을 가르치지 않는 것은 약탈과 강도를 가르치는 것과 마찬가지다.")
        sentenceList.add("승자는 눈을 밟아 길을 만들지만 패자는 눈이 녹기를 기다린다.")
        sentenceList.add("두 개의 화살을 갖지 마라. 두 번째 화살이 있기 때문에 첫 번째 화살에 집중하지 않게 된다.")
        sentenceList.add("그 사람 입장에 서기 전까지 절대 그 사람을 욕하거나 책망하지 마라.")
        sentenceList.add("뛰어난 말에게도 채찍이 필요하다.")

        Log.e("MainActivity", sentenceList.random())

        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        binding.showAllSentenceBtn.setOnClickListener {

            val intent = Intent(this, SentenceActivity::class.java)
            startActivity(intent)

        }

        binding.goodWordTextArea.setText(sentenceList.random())

    }
}
package com.bokchi.goodwords

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ListView

class SentenceActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sentence)

        val sentenceList = mutableListOf<String>()

        sentenceList.add("검정화면에 대충 흰글씨 쓰면 명언같다.")
        sentenceList.add("사람에게 하나의 입과 두 개의 귀가 있는 것은 말하기보다 듣기를 두 배로 하라는 뜻이다.")
        sentenceList.add("결점이 없는 친구를 사귀려고 한다면 평생 친구를 가질 수 없을 것이다.")
        sentenceList.add("자기 아이에게 육체적 노동을 가르치지 않는 것은 약탈과 강도를 가르치는 것과 마찬가지다.")
        sentenceList.add("승자는 눈을 밟아 길을 만들지만 패자는 눈이 녹기를 기다린다.")
        sentenceList.add("두 개의 화살을 갖지 마라. 두 번째 화살이 있기 때문에 첫 번째 화살에 집중하지 않게 된다.")
        sentenceList.add("그 사람 입장에 서기 전까지 절대 그 사람을 욕하거나 책망하지 마라.")
        sentenceList.add("뛰어난 말에게도 채찍이 필요하다.")


        val sentenceAdapter = ListViewAdpater(sentenceList)
        val listview = findViewById<ListView>(R.id.sentenceListView)

        listview.adapter = sentenceAdapter

    }

}
<?xml version="1.0" encoding="utf-8"?>
<layout>

    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/black"
        tools:context=".MainActivity">


        <Button
            android:id="@+id/showAllSentenceBtn"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:text="전체명언보기"
            android:layout_margin="20dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/goodWordTextArea"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="명언이 들어갈 위치입니다!"
            android:fontFamily="@font/bmjua_ttf"
            android:layout_margin="20dp"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="30sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />



    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SentenceActivity">

    <ListView
        android:id="@+id/sentenceListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="60dp">

    <TextView
        android:id="@+id/listViewTextArea"
        android:textSize="15sp"
        android:layout_margin="10dp"
        android:fontFamily="@font/bmjua_ttf"
        android:text="TextArea"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

 

안녕하세요

이렇게 드리면 될까요?

잘 안되시면 전체 코드를 구글 드라이브에 올리신 후 공유해주세요~

0

안녕하세요, 인프런 AI 인턴입니다. 후다닥님.

질문 주신 ‘명언리스트 페이지 제작 - ListView’와 관련하여 참고하실 수 있는 유사한 질문과 답변을 찾았습니다. ListView 관련하여 발생하는 오류와 해결 방법에 대한 설명을 포함하는 게시물이 있어서 이를 추천드립니다.

  1. 리스트뷰 화면문제
    이 게시물에서는 ListView가 제대로 표시되지 않는 문제에 대한 논의가 이루어지고 있습니다. 각종 ListView 관련 문제를 해결할 때 도움이 되는 기본 사항들이 설명되어 있을 수 있습니다.

  2. 리스트뷰 에러 질문
    이 링크에서는 ListView를 생성하고 사용하는 중 발생하는 오류와 그에 대한 해결책에 대한 설명을 찾아보실 수 있습니다.

  3. diet-memo 만들기 : 데이터베이스에 쓰기가 안됩니다.
    이 게시물은 Firebase와 ListView를 결합할 때 발생할 수 있는 문제에 대해 다루고 있습니다. 특히, 데이터베이스와의 연결 과정에서 발생하는 문제 해결 방법을 설명하고 있습니다.

위의 링크들을 참고하시어 문제가 발생하는 부분과 어떻게 해결할 수 있는지 비교해보시면 도움이 될 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

후다닥님의 프로필 이미지
후다닥

작성한 질문수

질문하기