, поэтому я пытаюсь реализовать файл xml, который я взял из проекта с открытым исходным кодом, и прикрепить его к представлению переработчика, и когда я делаю это, у меня происходит сбой эфира приложения или он не показывает файл xml и Я не совсем уверен, почему!
, пожалуйста, помогите мне исправить это
, вот где я достиг
Xml образец похож на мой xml файл
<quran>
<sura index="1" name="الفاتحة">
<aya index="1" text="بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ" />
<aya index="2" text="الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ" />
<aya index="3" text="الرَّحْمَنِ الرَّحِيمِ" />
<aya index="4" text="مَالِكِ يَوْمِ الدِّينِ" />
<aya index="5" text="إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ" />
<aya index="6" text="اهْدِنَا الصِّرَاطَ الْمُسْتَقِيمَ" />
<aya index="7" text="صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ" />
</sura>
<sura index="2" name="البقرة">
<aya index="1" text="الم" bismillah="بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ" />
<aya index="2" text="ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ" />
<aya index="3" text="الَّذِينَ يُؤْمِنُونَ بِالْغَيْبِ وَيُقِيمُونَ الصَّلَاةَ وَمِمَّا رَزَقْنَاهُمْ يُنْفِقُونَ" />
<aya index="4" text="وَالَّذِينَ يُؤْمِنُونَ بِمَا أُنْزِلَ إِلَيْكَ وَمَا أُنْزِلَ مِنْ قَبْلِكَ وَبِالْآخِرَةِ هُمْ يُوقِنُونَ" />
<aya index="5" text="أُولَئِكَ عَلَى هُدًى مِنْ رَبِّهِمْ وَأُولَئِكَ هُمُ الْمُفْلِحُونَ" />
<aya index="6" text="إِنَّ الَّذِينَ كَفَرُوا سَوَاءٌ عَلَيْهِمْ أَأَنْذَرْتَهُمْ أَمْ لَمْ تُنْذِرْهُمْ لَا يُؤْمِنُونَ" />
<aya index="7" text="خَتَمَ اللَّهُ عَلَى قُلُوبِهِمْ وَعَلَى سَمْعِهِمْ وَعَلَى أَبْصَارِهِمْ غِشَاوَةٌ وَلَهُمْ عَذَابٌ عَظِيمٌ" />
<aya index="8" text="وَمِنَ النَّاسِ مَنْ يَقُولُ آمَنَّا بِاللَّهِ وَبِالْيَوْمِ الْآخِرِ وَمَا هُمْ بِمُؤْمِنِينَ" />
<aya index="9" text="يُخَادِعُونَ اللَّهَ وَالَّذِينَ آمَنُوا وَمَا يَخْدَعُونَ إِلَّا أَنْفُسَهُمْ وَمَا يَشْعُرُونَ" />
<aya index="10" text="فِي قُلُوبِهِمْ مَرَضٌ فَزَادَهُمُ اللَّهُ مَرَضًا وَلَهُمْ عَذَابٌ أَلِيمٌ بِمَا كَانُوا يَكْذِبُونَ" />
<aya index="11" text="وَإِذَا قِيلَ لَهُمْ لَا تُفْسِدُوا فِي الْأَرْضِ قَالُوا إِنَّمَا نَحْنُ مُصْلِحُونَ" />
<aya index="12" text="أَلَا إِنَّهُمْ هُمُ الْمُفْسِدُونَ وَلَكِنْ لَا يَشْعُرُونَ" />
</sura>
Мой класс
class Sura {
var index: String? = null
var name: String? = null
var text: String? = null
var bismillah : String? = null
override fun toString(): String{
return "Index = $index\n Name = $name\n Text = $text\n Bismillah = $bismillah"
}
}
Xml Обработчик
class xmlPullHandler {
private val quran = ArrayList<Sura>()
private var quran1 : Sura? = null
private var text1 : String? = null
fun parse(inputStream: InputStream): List<Sura>{
try {
val factory = XmlPullParserFactory.newInstance()
factory.isNamespaceAware = true
val parser = factory.newPullParser()
parser.setInput(inputStream, null)
var eventType = parser.eventType
while (eventType != XmlPullParser.START_DOCUMENT){
var tagName = parser.name
when (eventType){
XmlPullParser.START_TAG -> if (tagName.equals("quran1", ignoreCase = true)){
quran1 = Sura()
}
XmlPullParser.TEXT -> text1 = parser.text
XmlPullParser.END_TAG -> if (tagName.equals("quran1", ignoreCase = true)){
quran1?.let { quran.add(it) }
}else if (tagName.equals("index", ignoreCase = true)){
quran1!!.index = text1
}else if (tagName.equals("name", ignoreCase = true)){
quran1!!.name = text1
}else if (tagName.equals("text", ignoreCase = true)){
quran1!!.text = text1
}else if (tagName.equals("bismillah", ignoreCase = true)){
quran1!!.bismillah = text1
}
else ->{
}
}
eventType = parser.next()
}
}catch (e: XmlPullParserException){
e.printStackTrace()
}catch (e: IOException){
e.printStackTrace()
}
return quran
}
}
мой адаптер представления Recycler
class SuraAdabters (private var quran: MutableList<Sura> ):RecyclerView.Adapter<SuraAdabters.SuraHolder>() {
private var quran1 : Sura? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SuraHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.quranlayouts, parent , false)
return SuraHolder(view)
}
override fun getItemCount(): Int = quran.size
override fun onBindViewHolder(holder: SuraHolder, position: Int) {
quran[position]
var text = holder.itemView.findViewById<TextView>(R.id.QuranText)
}
class SuraHolder(itemview: View):RecyclerView.ViewHolder(itemview){
}
}
мой фрагмент, содержащий Rcycler
class guranFragments : Fragment() {
var quran = arrayListOf<Sura>()
private lateinit var myAdapter: SuraAdabters
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_guran_fragments, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
myAdapter = SuraAdabters(quran)
SuraRecycler.layoutManager = LinearLayoutManager(this.context)
SuraRecycler.addItemDecoration(DividerItemDecoration(this.context, OrientationHelper.VERTICAL))
SuraRecycler.adapter = myAdapter
try {
val parser = xmlPullHandler()
val assets = context!!.assets.open("quran.xml")
parser.parse(assets)
myAdapter = SuraAdabters(quran)
}catch (io: IOException){
io.printStackTrace()
}
}
вот мой xml стиль представления рециркулятора, в котором я хочу, чтобы данные отображались в этом формате
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/QuranText"
android:textAlignment="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello"
android:textSize="40sp" />
<TextView
android:id="@+id/textaya"
android:text="Hello"
android:textSize="40sp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/pageNumber"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Hello"
android:textSize="40sp" />
</LinearLayout>
P. c. Пожалуйста, помогите мне с kotlin только потому, что я не понимаю Java или любой другой язык, кроме kotlin
Я почти все испробовал, но данные xml не появляются в моем приложении, пожалуйста помогите и заранее спасибо ...