2017-07-04 13 views
-1

コンテキストビューが変更され、トーストメッセージがユーザーの入力として表示される単純なアプリケーションを作成しています。私は、コンテキストビューを変更するときにアプリケーションがクラッシュし続ける理由を理解していません。メソッドが見つからないか、不正なシグニチャがある

また、Androidのスタジオは、この警告を与える:

方法「トースターは、」「FirstActivity」に欠けているか、間違った署名を持っています。ここで

私のコードです:

activity_me_clicked.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="@string/welcome" 
     android:textSize="36sp" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp" 
     android:paddingLeft="7dp" 
     android:paddingRight="7dp" 
     android:text="@string/intro" 
     android:textSize="24sp" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:baselineAligned="false"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <EditText 
       android:id="@+id/name" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginStart="7dp" 
       android:layout_marginEnd="7dp" 
       android:layout_marginTop="10dp" 
       android:ems="10" 
       android:hint="Name" 
       android:inputType="textPersonName" 
       tools:ignore="HardcodedText" /> 

      <Button 
       android:id="@+id/named" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:paddingBottom="10dp" 
       android:paddingTop="10dp" 
       android:onClick="MainProcess" 
       android:text="@string/done" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      tools:ignore="UselessLeaf"></LinearLayout> 

    </LinearLayout> 

</LinearLayout> 

FirstActivity.Java

activity_main_screen.xml
package com.example.nautatvanavlakha.abcd; 

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


public class FirstActivity extends AppCompatActivity { 
    public static String owner_string; 

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

    public void MainProcess(View view) { 

     final String TAG="DEBUG"; 
     Log.d(TAG,"At least process started"); 

     EditText owner = (EditText) findViewById(R.id.name); 
     owner_string = owner.getText().toString(); 
     Log.d(TAG,"owner name stored"); 

     TextView textView = (TextView) findViewById(R.id.welcome); 
     textView.setText("Hi " + owner_string + "."); 
     Log.d(TAG,"owner name is set"); 

     setContentView(R.layout.activity_main_screen); 
     Log.d(TAG,"content shown"); 
    } 
} 

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

    <TextView 
     android:id="@+id/welcome" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/what_would_you_like_me_to_do_today" 
     android:textSize="18sp" /> 

    <Button 
     android:id="@+id/Cam" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:padding="0dp" 
     android:paddingTop="15dp" 
     android:text="@string/camera" /> 

    <Button 
     android:id="@+id/Mus" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:padding="0dp" 
     android:paddingTop="15dp" 
     android:text="@string/music" /> 

    <Button 
     android:id="@+id/QR" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:padding="0dp" 
     android:paddingTop="15dp" 
     android:text="@string/scanQR" /> 


    <EditText 
     android:id="@+id/toastText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:hint="@string/order" 
     android:inputType="textPersonName" /> 


    <Button 
     android:id="@+id/toaster" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:onClick="toaster" 
     android:padding="0dp" 
     android:paddingTop="15dp" 
     android:text="@string/toast" 
     android:layout_marginEnd="100dp" 
     android:layout_gravity="center"/> 

</LinearLayout> 

MainScreen.java

package com.example.nautatvanavlakha.abcd; 

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

public class MainScreen extends AppCompatActivity { 

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

    public void toaster(View view){ 

     EditText toast = (EditText)findViewById(R.id.toastText); 
     String final_toast = toast.getText().toString(); 
     Toast.makeText(getApplicationContext(), final_toast, Toast.LENGTH_SHORT).show(); 
    } 

} 

EDIT:示唆したように、私はFirstActivity.Javaにtoaser機能を移動し、それを維持することは無意味になるとMainScreen.javaファイルを削除 。しかし、大きな問題は、私がボタンを押すと(idという)、アプリケーションが停止し続けることです。

EDIT2: IはsetContentView(R.layout.activity_main_screen)でFirstActivity.Javaこのコード

TextView textView = (TextView) findViewById(R.id.welcome); 
    textView.setText("Hi " + owner_string + "."); 
    Log.d(TAG,"owner name is set"); 

上にする必要があるので、活動へのアクセスを有することを見出しましたすべてのレイアウトコンポーネント:)

+0

コードにバグがいっぱいです、それはこの方法によって、あなたの活動の内容を変更するには間違った方法ですが、あなたのMainScreen活動は暗闇の中で滞在しないだろうと決して使用すること。 – Maysara

答えて

関連する問題