当前位置: 首页 > 知识库问答 >
问题:

如何在此代码中显示另一个textview?

茅星雨
2023-03-14

你能解释一下如何在此代码中显示另一个文本视图吗?我使用的是viewpager,所以我只打印一个textview,我想再打印一个textview。任何人都可以帮我。提前谢谢。

这是我的代码

这是我的主要活动课

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set title for the GridView
        setTitle("GridView");
        // Get the view from grid_view.xml
        setContentView(R.layout.grid_view);

        // Set the images from ImageAdapter.java to GridView
        GridView gridview = (GridView) findViewById(R.id.gridview);
         //gridview.setAdapter(new ImageAdapter(this));  //commented line 05052018 
        gridview.setAdapter(new ChangesofAdapter(this)); //new line 05052018
        // Listening to GridView item click
        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                // Launch ImageViewPager.java on selecting GridView Item
                Intent i = new Intent(getApplicationContext(), ImageViewPager.class);

                // Show a simple toast message for the item position
                Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();

                // Send the click position to ImageViewPager.java using intent
                i.putExtra("id", position);

                // Start ImageViewPager
                startActivity(i);
            }
        });
    }
}

这是我的gridview类-

public class ChangesofAdapter extends BaseAdapter {
    private Context mContext;
    public ChangesofAdapter(Context c) {
        mContext = c;
    }
    public int getCount() {
        return getDataContacts().length;
    }
    public Object getItem(int position) {
        return getDataContacts()[position];
    }
    public long getItemId(int position) {
        return 0;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView imageView;
        if (convertView == null) {  // If it's not recycled, initialize some attributes
            imageView = new TextView(mContext.getApplicationContext());
            imageView.setTextColor(Color.GREEN);
            imageView.setGravity(Gravity.LEFT); // new line 05052018
            imageView.setTextSize(30);
        } else {
            imageView = (TextView) convertView;
        }
        String abc =getDataContacts()[position];
        imageView.setText(abc); // new line 05052018
        return imageView;
    }
    public String[] getContacts(){
        DBUtils utils = new DBUtils(mContext.getApplicationContext());
        ArrayList<String> names = new ArrayList<String>();
        new DBUtils((mContext.getApplicationContext()));
        try {
            DBUtils.createDatabase();
        } catch (IOException e) {
            Log.w(" Create Db "+e.toString(),"===");
        }
        DBUtils.openDatabase();
        Cursor cursor = utils.getResult("select * from Cflviewpagerdata order by title");
        cursor.moveToFirst();
        while(!cursor.isAfterLast()) {
            names.add(cursor.getString(cursor.getColumnIndex("view")));
            cursor.moveToNext();
        }
        cursor.close();
        DBUtils.closeDataBase();
        return names.toArray(new String[names.size()]);
    }
    public String[] getDataContacts(){
        DBUtils utils = new DBUtils(mContext.getApplicationContext());
        ArrayList<String> names = new ArrayList<String>();
        new DBUtils((mContext.getApplicationContext()));
        try {
            DBUtils.createDatabase();
        } catch (IOException e) {
            Log.w(" Create Db "+e.toString(),"===");
        }
        DBUtils.openDatabase();
        Cursor cursor = utils.getResult("select * from Cflviewpagerdata order by title");
        cursor.moveToFirst();
        while(!cursor.isAfterLast()) {
            names.add(cursor.getString(cursor.getColumnIndex("title")));
            cursor.moveToNext();
        }
        cursor.close();
        DBUtils.closeDataBase();
        return names.toArray(new String[names.size()]);
    }
}

此代码表示单击网格视图项目时此页面将调用此页面是具有网格视图项目的viewpager此类是viewpager-

    public class ImageViewPager extends Activity implements OnInitListener {
    // Declare Variable
    int position;
    Bundle img = new Bundle();
    ViewPager vp;
    private TextToSpeech mTts;
    List<TextView> images;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set title for the ViewPager
        setTitle("ViewPager");
        // Get the view from view_pager.xml
        setContentView(R.layout.view_pager);
        mTts = new TextToSpeech(this, this);
        // Retrieve data from MainActivity on item click event
        Intent p = getIntent();
        position = p.getExtras().getInt("id");  
        ChangesofAdapter imageAdapter = new ChangesofAdapter(this); //new line 05052018
        images = new ArrayList<TextView>(); //new line 05052018

        // Retrieve all the images
        for (int i = 0; i < imageAdapter.getCount(); i++) {
            TextView imageView = new TextView(this); //new line 05052018
            String abc = imageAdapter.getContacts()[i];
            imageView.setText(imageAdapter.getContacts()[i]);  //new line 05052018
            imageView.setTextColor(Color.BLUE);
            imageView.setGravity(Gravity.CENTER_HORIZONTAL);//new line 05052018
            img.putString("CURRENT_POSITION", abc);
            images.add(imageView);
        }
        vp=(ViewPager)findViewById(R.id.pager);         //new line 06052018
        vp.setAdapter(new ViewPagerAdapter(images));    //new line 06052018
        vp.setOffscreenPageLimit(0);
        vp.setCurrentItem(position);                    //new line 06052018
    }

    public class ViewPagerAdapter extends PagerAdapter {
        private List<TextView> images;  
        public ViewPagerAdapter(List<TextView> images) {
            this.images = images;
        }   
        @Override
        public Object instantiateItem(final ViewGroup container, int position) {
            final TextView imageView = images.get(position);                              //commented line on date 06052018
            container.addView(imageView);
            imageView.setTextSize(120);
            vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                public void onPageSelected(int pos) {
                 int  currentposition = pos;
                 mTts.speak(images.get(currentposition).getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
                }
                public void onPageScrolled(int arg0, float arg1, int arg2) {                
                }
                public void onPageScrollStateChanged(int arg0) {
                }
            });     
            return imageView;
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView(images.get(position));
        }   
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return images.size();
        }
        @Override
        public boolean isViewFromObject(View view, Object o) {
            // TODO Auto-generated method stub
            return view == o;
        }
    }
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        if (mTts != null) {
            mTts.shutdown();
        }
    }
    @Override
    protected void onDestroy() {
        //Close the Text to Speech Library
        if(mTts != null) {
            mTts.stop();
            mTts.shutdown();
        }
        super.onDestroy();
    }
    public void onInit(int arg0) {
        if(arg0 == TextToSpeech.SUCCESS){
            mTts.speak(images.get(position).getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
        }
    }
}

这是我的申请看看

这是我的Gridview外观,当单击第7项时,此项将打开第二次外观的视图页。

这是我的视图页看在这个样子我想要更多的文本视图。

如何在项目(七)下方或项目(七)上方显示另一个文本视图

这是我的代码,任何人都可以帮助我。我是一个新的Android程序员学习者。

提前谢谢。

共有1个答案

边霄
2023-03-14

您有两种可选方式

就像我看到你使用其中一个这样你就可以继续

第一种方式:以编程方式

imageView = new TextView(mContext.getApplicationContext());
        imageView.setTextColor(Color.GREEN);
        imageView.setGravity(Gravity.LEFT); // new line 05052018
        imageView.setTextSize(30);

因此,您可以在此处添加更多ANYOBJECT,但将它们放入容器中

看看这个

https://stackoverflow.com/a/26133978/6998825

备用方式:模块和REFF

这样,您将创建XML布局并在baseadapter中膨胀它,以便可以使用它的元素

row\u模块。xml FOR EX

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">

<ImageView
    android:id="@+id/table_IMG"
    android:layout_width="120dp"
    android:layout_height="120dp" />
<TextView
    android:id="@+id/table_num"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textSize="20dp"
    android:textColor="#000000"
    android:layout_margin="40dp"/>
<TextView
    android:id="@+id/table_ID"
    android:layout_width="0dp"
    android:layout_height="0dp" />
</RelativeLayout>

在适配器中

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.table_model, null);

    TextView TV_ID = (TextView)vi.findViewById(R.id.table_ID); // ID
    ImageView bgImg =(ImageView)vi.findViewById(R.id.table_IMG); // IMG
    TextView TV_details = (TextView)vi.findViewById(R.id.table_num); // details

    HashMap<String, String> arraylist_type = new HashMap<String, String>();
    arraylist_type = data.get(position);

    // Setting all values in listview
    TV_ID.setText(arraylist_type.get("ID"));

    Glide.with(activity).load(arraylist_type.get("IMG")).into(bgImg);

    TV_details.setText(arraylist_type.get("details"));

    return vi;
}
 类似资料:
  • 我正试图创建一个员工工资单系统。我用JMenuItem创建了一个下拉菜单Add Employee,当您单击该菜单项时,它将在下面显示另一个jframe,以输入所有员工的详细信息。我有添加雇员JFrame,它运行完美。所以我想知道如何将两者联系起来?这是其中可能有所帮助的一部分

  • 问题内容: null在此代码中如何工作,为什么不打印对象? 输出: 在字符串中 问题答案: Java将始终尝试使用方法的最特定版本。 自通话以来 适用于两种方法 Java将选择最具体的方法描述,即

  • 我有一个重新组合一些JPanel的主框架。我的JFrame已经完全填满了。 我希望能够在左侧JFrame中的另一个JPanel上显示/隐藏一个小JPanel。此JPanel是用户的配置区域。 所以这里是我的问题,在我的JFrame中,在一个小区域中显示JPanel的最好方式是什么? 我试过了,但没有按预期工作(这是单击设置图标时执行的代码): 谢谢

  • 我正在使用WCF和实体框架处理一个web服务,我想知道如何查看HTTP状态代码或将其返回给调用客户端。 我拥有的代码如下: 无论是使用这个JSON还是在其他地方,我都希望客户机知道调用是否通过适当的HTTP代码成功或失败。任何关于如何做到这一点的提示或建议都将不胜感激。

  • 所以我想有2个JPanels。向上JPanel(内嵌面板)和向下JPanel(主面板)。我想在JFrame中添加keyListener,所以当我按下任何键时,面板隐藏,这样我们就可以看到向下的面板。代码应该如何工作? 此代码不隐藏内部面板。发生了什么?