【问题标题】:relationship between EditText and TextViewEditText 和 TextView 的关系
【发布时间】:2014-12-07 23:50:38
【问题描述】:

如果我在布局中有一个 EditText 并且在另一个布局中有 Text 视图,我的代码会将 EditText 中的哪个布局放到另一个布局中并将其放入 textView ..

TextView 的格式与 EditText 的格式不同,例如 font-size 和 font-family .. 我希望我的代码也将格式应用于另一个布局并将其应用于存在于另一个布局中的 textview

所以更具体地说:我在第一个布局中写了一些东西并更改了它的字体大小...这个 EditText 将是第二个布局中的 textView 但不保存 EditText 的格式..我希望 textView 与 EditText 的格式相同..

我可以这样做吗?以及如何??

spinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    this, android.R.layout.simple_spinner_item, items);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(
          new AdapterView.OnItemSelectedListener() {
              @Override
              public void onItemSelected(AdapterView<?> arg0, View arg1,
                      int arg2, long arg3) {
                int position = spinner.getSelectedItemPosition();
                int fontSizeInt;
                try
                {
                    fontSizeInt = Integer.parseInt(items[position]);
                }
                catch (NumberFormatException e)
                {
                    fontSizeInt = 12; // Default size.
                }
                et.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float) fontSizeInt);

                  // TODO Auto-generated method stub
              }
              @Override
              public void onNothingSelected(AdapterView<?> arg0) {
                  // TODO Auto-generated method stub
              }
          }
      );

这是我的触摸监听器 公共无效 addListenerOnImageg1() {

final Context context = this;

imageView = (ImageView) findViewById(R.id.g1);

imageView.setOnClickListener(new OnClickListener() {



    @Override
    public void onClick(View arg0) {

  Intent intent1 = new Intent(context , g1.class); 
  intent1.putExtra("fname" , et.getText().toString());
  intent1.putExtra("font_size", fontSizeInt);
  startActivity(intent1);


    }

}); }

我应该在第二个布局中写什么?

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:

    既然您确实让用户更改 EditText 中的文本格式,请保留这些更改,将它们作为更多附加内容添加到您的 Intent,并在其他活动中阅读附加内容。

    你应该只有一个Intent和一个startActivity()的电话,除非你真的想开始两个活动,我怀疑。

    从这段代码中我看不到格式数据在哪里,但如果你有,例如,你的字体大小存储在int fontSize,请调用:

    intent.putExtra("font_size", fontSize);
    

    在其他活动中,调用:

    int receivedFontSize = intent.getIntExtra("font_size", defaultFontSize);
    

    作为 defaultFontSize,如果是 12,则使用 12 代替变量。如果是 18,则使用 18。此变量的目的是避免缺少从父活动传递的值。例如:

    int receivedFontSize = intent.getIntExtra("font_size", 18);
    

    【讨论】: