首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android编辑文本无法获取数据。

android编辑文本无法获取数据。
EN

Stack Overflow用户
提问于 2015-02-04 09:06:45
回答 1查看 112关注 0票数 0

在我的安卓程序中,我使用、achartengine、库来显示饼图。

程序的基础是我有一个活动,其中我有两个编辑文本字段和一个button.after填充编辑文本字段,当单击按钮时,它将显示一个带有分段的弹出窗口。

在这里,我使用NAME_LIST作为字符串类型数组。编辑文本的值将存储在哪里,以及在我们可以获取..。守则如下:--

代码语言:javascript
复制
   public class AndroidPopupWindowActivity111_new extends Activity {

    private static int[] COLORS = new int[] { Color.MAGENTA, Color.CYAN };  
    LinearLayout layout;

    private CategorySeries mSeries = new CategorySeries("");  
    private DefaultRenderer mRenderer = new DefaultRenderer();  
    private GraphicalView mChartView;  


     EditText name1,name2;



    private  int[] VALUES = { 40,60 };
     String x1,y1;

     String[] NAME_LIST ; 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popup_main);
        name1=(EditText) findViewById(R.id.ext1);
       name2=(EditText) findViewById(R.id.ext2);
       x1=name1.getText().toString();
       y1=name2.getText().toString();
       NAME_LIST = new String[] { x1 , y1 };

        mRenderer.setApplyBackgroundColor(true);
        mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50));  
        mRenderer.setChartTitleTextSize(20);  
        mRenderer.setLabelsTextSize(15);  
        mRenderer.setLegendTextSize(15);  
        mRenderer.setMargins(new int[] { 20, 30, 15, 0 });  
        mRenderer.setZoomButtonsVisible(true);  
        mRenderer.setStartAngle(90);

        final Button btnOpenPopup = (Button)findViewById(R.id.openpopup);

        mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer); 


        btnOpenPopup.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
   LayoutInflater layoutInflater    = (LayoutInflater)getBaseContext()  .getSystemService(LAYOUT_INFLATER_SERVICE);  


       View popupView = layoutInflater.inflate(R.layout.main_piechart, null);  
             final PopupWindow popupWindow = new PopupWindow( popupView, LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
             layout = (LinearLayout)popupView.findViewById(R.id.chart); 
             layout.addView(mChartView);

             for (int i = 0; i < VALUES.length; i++) {  


                    mSeries.add(NAME_LIST[i] + "(" + VALUES[i]+"%)", VALUES[i]);
                    SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();  
                 renderer.setColor(COLORS[(mSeries.getItemCount() - 1) % COLORS.length]);  
                 mRenderer.addSeriesRenderer(renderer);  
                 }  

                 if (mChartView != null) {  

                    mChartView.repaint();  

                 }  


             Button btnDismiss = (Button)popupView.findViewById(R.id.dismiss);
             btnDismiss.setOnClickListener(new Button.OnClickListener(){

     @Override
     public void onClick(View v) {

      popupWindow.dismiss();
     }});

             popupWindow.showAsDropDown(btnOpenPopup, 50, -30);

   }});
    }

}

但问题是,这个名字并不是从编辑文本中取来的。我举一个例子,说明发生了什么错误。

单击图片以了解问题所在...in这张图片A,B,C,D是编辑文本values..in my output A,B,C,D正在显示为“空”,问题在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-04 09:13:32

当你初始化

代码语言:javascript
复制
String[] NAME_LIST = new String[] { x1,y1 };

x1和y1为空。稍后更改x1和y1的值不会改变NAME_LIST中的值。

加一行

代码语言:javascript
复制
NAME_LIST = new String[] { x1,y1 };

就在OnCreate()中的for循环之前。看起来不错。

编辑:

移动这五条线

代码语言:javascript
复制
       name1=(EditText) findViewById(R.id.ext1);
       name2=(EditText) findViewById(R.id.ext2);
       x1=name1.getText().toString();
       y1=name2.getText().toString();
       NAME_LIST = new String[] { x1 , y1 };

进入onClick()方法,就在for循环开始之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28317381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档