2014-05-14 2 views
0

자바 파일에서 onClickListener의 버튼을 설정하고 앱을 실행하면 앱에서 불행히도 멈추게됩니다. 다른 활동으로 나를 보내는 버튼을 만들려고합니다. 하지만 작동하지 않습니다. ADK에서 오류를 표시하지 않습니다. 하지만 앱이 작동하지 않습니다. 여기 OnClickListener에서 버튼을 설정하면 앱이 작동을 멈 춥니 다.

내 코드입니다 :

package com.shanjedul.shanjedulhassan; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.os.Build; 



public class Welcome extends ActionBarActivity { 

Button okButton; 

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

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 
    } 


    okButton=(Button) findViewById(R.id.button1); 
    okButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      Intent in=new Intent(Welcome.this, About.class); 
      startActivity(in); 

     } 
    }); 


} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.welcome, menu); 
    return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
    } 

/** 
    * A placeholder fragment containing a simple view. 
    */ 
    public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_welcome, container, false); 
     return rootView; 
    } 
} 

} 
+0

'button1'이 'activity_welcome.xml'레이아웃에 속해 있는지 확인하십시오. –

+0

이 공용 클래스를 사용해보십시오 Welcome to ActionBarActivity implements View.OnClickListener'이 동작 할 수 있습니다. –

+0

StackOverflow에 오신 것을 환영합니다! ** 문제를 재현하는 ** 최소한의 예제 **를 제공하면 문제를 해결하는 데 더 도움이됩니다! – Qix

답변

0

이 (..... ㅋ ㅋ) 즉시 된 setContentView 후 코드의 아래 라인을 유지; 당신이 fragment_welcome xml.Here 조각의 activity_welcome XML을 insteand에 버튼을 넣어의 당신이 당신의 버튼을 설정해야하므로 활동에 부착하기 때문에 또한 버튼 activity_welcome.xml 파일에 정의했는지 확인

okButton=(Button) findViewById(R.id.button1); 
+0

감사합니다 ... 그것은 나를 도울 것입니다. – user3634971

+0

문제가 해결되었으며 원활하게 진행할 수 있습니까? –

0

입니다 fragment_welcome xml을 작성한 다음 OnCreateView 메소드 또는 OnActivityCreated 메소드에서 버튼의 findviewbyid를 파생 클래스에서 가져옵니다. 여기서 컨테이너와 조각 같은 액티비티는 항목과 유사하므로 컨테이너에 직접 참조 할 수 없습니다.

또는 두 번째 방법 fragment_welcome xml을 제거하고 또한 활동에서 PlaceholderFragment 클래스를 제거하면 activity_welcome xml 구성 요소를 직접 가져올 수 있습니다.

+0

이것을 이해하십시오 ... 감사합니다 ... – user3634971

+0

이것은 ans로 표시하는 데 도움이됩니다. –

관련 문제