समस्या:

संकट


अगर मैं ठीक कर दूं:

बाद में


मैं Android-Studio के साथ AppCompatTextView देखना चाहता हूं।
AppCompatTextView को कैसे देखें?
कुछ भी नहीं त्रुटि! पता नहीं क्यों..
कृपया इस समस्या में मदद करें ..



activity_searchresult.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:background="@color/cfb"
    tools:context=".ResultActivity">

    <FrameLayout
        android:id="@+id/content_layout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="600dp"
            android:background="@color/cfb"
            tools:context=".ResultActivity">

            <TextView
                android:id="@+id/resultText1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/result_text1"
                android:textColor="@color/black"
                android:textSize="23sp"
                android:layout_marginLeft="30dp"
                app:layout_constraintBottom_toTopOf="@+id/resultText2"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
            <TextView
                android:id="@+id/resultText2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/result_text2"
                android:textColor="@color/black"
                android:textSize="23sp"
                android:layout_marginBottom="30dp"
                app:layout_constraintBottom_toTopOf="@+id/resultViewPager2"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />


            <ImageButton
                android:id="@+id/resultFilterButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="0dp"
                android:layout_marginBottom="10dp"
                android:layout_marginEnd="15dp"
                android:layout_marginRight="28dp"
                android:background="@color/cfb"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintBottom_toBottomOf="@+id/dots_indicator"
                app:srcCompat="@drawable/filter" />

            <TextView
                android:id="@+id/filterText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="25dp"
                android:layout_marginRight="40dp"
                android:text="@string/filter"
                android:textColor="#000000"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/resultFilterButton" />

            <androidx.viewpager2.widget.ViewPager2
                android:id="@+id/resultViewPager2"
                android:layout_width="270dp"
                android:layout_height="270dp"
                android:layout_marginBottom="190dp"
                android:orientation="horizontal"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintVertical_bias="0.3" />

            <com.tbuonomo.viewpagerdotsindicator.DotsIndicator
                android:id="@+id/dots_indicator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="110dp"
                app:dotsColor="@color/white"
                app:dotsCornerRadius="8dp"
                app:dotsSize="14dp"
                app:dotsSpacing="4dp"
                app:dotsWidthFactor="2.5"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.498"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/resultViewPager2"
                app:layout_constraintBottom_toBottomOf="parent"
                app:progressMode="true"
                app:selectedDotColor="@color/black" />
            <ImageView
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_marginStart="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginBottom="30dp"
                app:layout_constraintBottom_toTopOf="@+id/resultViewPager2"
                app:srcCompat="@drawable/cafebot" />
        </androidx.constraintlayout.widget.ConstraintLayout>

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".ResultActivity">
            <FrameLayout
                android:id="@+id/frameLayout"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                app:layout_constraintBottom_toTopOf="@id/navigationView"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>

            <com.google.android.material.bottomnavigation.BottomNavigationView
                android:id="@+id/navigationView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?android:attr/windowBackground"
                app:itemTextColor="@drawable/bottom_icon_color"
                app:itemIconTint="@drawable/bottom_icon_color"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toLeftOf="parent"
                app:menu="@menu/bottom_nav" />

        </androidx.constraintlayout.widget.ConstraintLayout>

    </FrameLayout>

</LinearLayout>


result_item_viewpager.xml:

<?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:id="@+id/result_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/result_menu_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:textColor="@android:color/black"
        android:textSize="26sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/result_sample_image" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/result_cafe_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:textColor="@android:color/black"
        android:textStyle="bold"
        android:textSize="23sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/result_menu_name" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/result_product_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:textColor="@android:color/black"
        android:textSize="22sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/result_cafe_name" />

    <ImageView
        android:id="@+id/result_sample_image"
        android:layout_width="270dp"
        android:layout_height="270dp"
        android:layout_marginTop="4dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@tools:sample/avatars" />

</androidx.constraintlayout.widget.ConstraintLayout>

ResultDataPage.java:

package com.example.myapplication;

public class ResultDataPage {
    int resultImage;
    String resultCafeName;
    String resultMenuName;
    int resultPrice;

    public ResultDataPage(int image, String menuName, String cafeName, int price){
        this.resultImage = image;
        this.resultMenuName = menuName;
        this.resultCafeName = cafeName;
        this.resultPrice = price;
    }

    public int getImage(){
        return resultImage;
    }

    public void setImage(int image) {
        this.resultImage = image;
    }

    public String getMenuName(){
        return resultMenuName;
    }

    public void setMenuName(String menuName) {
        this.resultMenuName = menuName;
    }

    public String getCafeName() {
        return resultCafeName;
    }

    public void setCafeName(String cafeName) {
        this.resultCafeName = cafeName;
    }

    public int getPrice(){
        return resultPrice;
    }

    public void setPrice(int price){
        this.resultPrice = price;
    }
}


ResultViewPagerAdapter.java:

package com.example.myapplication;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class ResultViewPagerAdapter extends RecyclerView.Adapter<ResultViewHolderPage> {

    private ArrayList<ResultDataPage> listData;

    ResultViewPagerAdapter(ArrayList<ResultDataPage> data) {
        this.listData = data;
    }

    @Override
    public ResultViewHolderPage onCreateViewHolder(ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        View view = LayoutInflater.from(context).inflate(R.layout.result_item_viewpager, parent, false);
        return new ResultViewHolderPage(view);
    }

    @Override
    public void onBindViewHolder(ResultViewHolderPage holder, int position) {
        if(holder instanceof ResultViewHolderPage){
            ResultViewHolderPage viewHolder = (ResultViewHolderPage) holder;
            viewHolder.onBind(listData.get(position));
        }
    }

    @Override
    public int getItemCount() {
        return listData.size();
    }
}


ResultViewHolderPage.java:

package com.example.myapplication;

import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;

public class ResultViewHolderPage extends RecyclerView.ViewHolder {
    
    private ImageView resultImage;
    private TextView resultCafeName;
    private TextView resultMenuName;
    private TextView resultPrice;

    ResultDataPage resultData;

    ResultViewHolderPage(View itemView) {
        super(itemView);
        resultCafeName = itemView.findViewById(R.id.result_cafe_name);
        resultImage = itemView.findViewById(R.id.result_sample_image);
        resultPrice = itemView.findViewById(R.id.result_product_price);
        resultMenuName = itemView.findViewById(R.id.result_menu_name);
    }

    public void onBind(ResultDataPage resultData){
        this.resultData = resultData;

        resultMenuName.setText(resultData.getMenuName());
        resultCafeName.setText(resultData.getCafeName());
        resultImage.setImageResource(resultData.getImage());
        resultPrice.setText(Integer.toString(resultData.getPrice()).concat("원"));
    }
}

ResultActivity.java:

package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager2.widget.ViewPager2;

import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.tbuonomo.viewpagerdotsindicator.DotsIndicator;

import java.util.ArrayList;

public class ResultActivity extends AppCompatActivity {
    // 가운데
    private ViewPager2 result_ViewPager2;
    private DotsIndicator dotsIndicator;
    private ArrayList<ResultDataPage> list;

    // 바텀네비게이션뷰
    private BottomNavigationView bottomNav;
    private FragmentManager fragmentManager = getSupportFragmentManager();
    private SearchPage fragmentSearch = new SearchPage();
    private HomePage fragmentHome = new HomePage();
    private CafePage fragmentCafe = new CafePage();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_searchresult);

        this.viewpage(); // 뷰페이저 (메뉴검색결과값)

        // 바텀네비게이션
        bottomNav = findViewById(R.id.navigationView);
        bottomNav.setOnNavigationItemSelectedListener(new ResultActivity.ItemSelectedListener());
    }

    private void viewpage(){
        list = new ArrayList<>();
        list.add(new ResultDataPage(R.drawable.sample_1, "아메리카노","스타벅스", 4900));
        list.add(new ResultDataPage(R.drawable.sample_2, "아메리카노","투썸플레이스", 4100));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","이디야커피", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));
        list.add(new ResultDataPage(R.drawable.sample_3, "아메리카노","EDIYA", 3000));

        result_ViewPager2 = findViewById(R.id.resultViewPager2);
        result_ViewPager2.setAdapter(new ResultViewPagerAdapter(list));

        dotsIndicator = findViewById(R.id.dots_indicator);
        dotsIndicator.setViewPager2(result_ViewPager2);
    }

    //바텀네비
    class ItemSelectedListener implements BottomNavigationView.OnNavigationItemSelectedListener {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            FragmentTransaction transaction = fragmentManager.beginTransaction();

            switch (menuItem.getItemId()) {
                case R.id.searchItem:
                    Intent intent1 = new Intent(getApplicationContext(), com.example.myapplication.SearchActivity.class);
                    startActivity(intent1);
                    //transaction.replace(R.id.frameLayout, fragmentSearch).commitAllowingStateLoss();
                    break;
                case R.id.homeItem:
                    Intent intent2 = new Intent(getApplicationContext(), com.example.myapplication.MainActivity.class);
                    startActivity(intent2);
                    //transaction.replace(R.id.frameLayout, fragmentHome).commitAllowingStateLoss();
                    break;
                case R.id.cafeItem:
                    Intent intent3 = new Intent(getApplicationContext(), com.example.myapplication.MainCflistActivity.class);
                    startActivity(intent3);
                    //transaction.replace(R.id.frameLayout, fragmentCafe).commitAllowingStateLoss();
                    break;
            }
            return true;
        }
    }

}

0
Ganada 12 मई 2021, 13:48

1 उत्तर

सबसे बढ़िया उत्तर

अद्यतन करें: (विवरण के लिए नीचे टिप्पणियाँ) अंत में, टेक्स्ट छिपा हुआ था क्योंकि ViewPager बहुत छोटा था।

AppCompatTextView पुराने सपोर्ट लाइब्रेरी सपोर्ट के लिए एक रेट्रो-संगत टेक्स्ट व्यू है। आपका न्यूनतम समर्थित SDK संस्करण कौन सा है? यदि आप AndroidX का उपयोग कर रहे हैं तो आपको इसकी आवश्यकता नहीं है।

हालाँकि, यह इस निर्भरता के साथ आता है जिसे आपको अपने मॉड्यूल बिल्ड.ग्रेड फ़ाइल में रखना होगा:

implementation 'com.android.support:appcompat-v7:28.0.0'

इसके बाद, ग्रैडल को सिंक करें और आप "AppCompatTextView" का उपयोग कर सकते हैं:

enter image description here

सन्दर्भ: https://developer.android.com/topic/libraries/support- पुस्तकालय/पैकेज#v7 https://developer.android.com/topic/libraries/support- पुस्तकालय/सेटअप#चुनना https://developer.android.com/reference/androidx/appcompat/widget/ AppCompatTextView

0
Fabrizio 12 मई 2021, 20:41
मैं एंड्रॉइड का उपयोग नहीं करता: AppCompatTextView टैग में टेक्स्ट। ResultActivity.java में, आप एक निजी शून्य दृश्य पृष्ठ () देख सकते हैं। AppCompatTextView के बारे में बहुत सारे डेटा (पाठ) हैं।
 – 
Ganada
12 मई 2021, 14:42
यह कोई फर्क नहीं पड़ता। जैसा कि मेरे उत्तर में दिखाया गया है, क्या आपके पास अपनी ग्रेडल फ़ाइल में सही निर्भरता है?
 – 
Fabrizio
12 मई 2021, 14:51
मेरा CompilSdkVersion 30 है। इसलिए, जब मैं कार्यान्वयन 'com.android.support:appcompat-v7:28.0.0' डालता हूं, तो टेक्स्ट का रंग लाल हो जाता है। (त्रुटि) इसलिए, मैंने कार्यान्वयन 'com.android.support:appcompat-v7 :30.0.0'.
 – 
Ganada
12 मई 2021, 15:03
इसके अलावा, मैं दो व्यूपेजर का उपयोग करता हूं। MainActivity.java viewPager का उपयोग करता है। मैं ResultActivity.java का भी उपयोग करना चाहता हूं।
 – 
Ganada
12 मई 2021, 15:05
1
ओह.. मुझे सच में खेद है... आपके प्रयास के लिए धन्यवाद! आप अच्छे होंगे!
 – 
Ganada
12 मई 2021, 20:20