2017-09-20 4 views
1

目的:
ボタンを押すと、新しいテキストの新しい行がtextviewに表示されます。ボタンを押したときにTextViewの新しい行にテキストを表示する方法

問題:
ソースコードに基づいて、目標を達成するためには機能していません。

どの部分が欠けていますか?

情報:私は

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.jfdimarzio.netvork"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

activity_main.xml

のAndroidManifest.xml

API 23


を使用しています*私は
アンドロイド で新たなんだ*

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
    tools:context="com.jfdimarzio.netvork.MainActivity"> 

    <Button 
     android:id="@+id/btn_send" 
     android:layout_width="349dp" 
     android:layout_height="54dp" 
     android:layout_alignEnd="@+id/edittxt_input" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="12dp" 
     android:onClick="inputData" 
     android:text="Send" 
     tools:layout_editor_absoluteX="16dp" 
     tools:layout_editor_absoluteY="441dp" /> 

    <EditText 
     android:id="@+id/edittxt_input" 
     android:layout_width="348dp" 
     android:layout_height="39dp" 
     android:layout_above="@+id/btn_send" 
     android:layout_alignStart="@+id/txtview_display" 
     android:layout_marginBottom="19dp" 
     android:ems="10" 
     android:inputType="textPersonName" 
     tools:layout_editor_absoluteX="16dp" 
     tools:layout_editor_absoluteY="392dp" /> 

    <TextView 
     android:id="@+id/txtview_display" 
     android:layout_width="348dp" 
     android:layout_height="355dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="15dp" 
     tools:layout_editor_absoluteX="16dp" 
     tools:layout_editor_absoluteY="16dp" /> 

</RelativeLayout> 

package com.jfdimarzio.netvork; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

import static com.jfdimarzio.netvork.R.id.txtview_display; 

public class MainActivity extends AppCompatActivity 
{ 

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


    public void inputData(View view) 
    { 
     EditText editText = (EditText) findViewById(R.id.edittxt_input); 
     String message = editText.getText().toString(); 

     TextView myTextView = (TextView) findViewById(R.id.txtview_display); 

     myTextView.setText(message + "\n"); 
    } 

} 
+0

あなたはどんな問題に直面していますか? –

答えて

2

私はあなたが前のテキストと一緒に新しい行にEDITTEXTの内容を表示したいと思います。あなたが活動から今のsetTextをしたいとき、あなたは活動をリフレッシュする必要があり、それが文字列becouse動作していないされた後に保存されていない実際に

public void inputData(View view) { 
    EditText editText = (EditText) findViewById(R.id.edittxt_input); 
    String message = editText.getText().toString(); 

    TextView myTextView = (TextView) findViewById(R.id.txtview_display); 
    String oldText = myTextView.getText(); 

    myTextView.setText(oldText + "\n" + message); 
} 
0

:もしそうなら、あなたは機能引数inputData()このようなを変更することがありSharedPreferencesによる。またはこのようなメソッドを作成して追加することができますSharedPreferences

public class MainActivity extends AppCompatActivity { 

    private String message; 
    private TextView myTextView; 
    private EditText editText; 

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

     myTextView = (TextView) findViewById(R.id.txtview_display); 
     editText = (EditText) findViewById(R.id.edittxt_input); 

    } 


    public void inputData(View view) { 

     message = editText.getText().toString().trim(); 

     if (!message .isEmpty()){ 
      MethodName(message); 
     } 
    } 

    public void MethodName(String message){ 
     myTextView.setText(message + "\n"); 
    } 

} 
関連する問題